[code]if .. elsif ... else ... end def (arg1, arg2=, ...) ... return ; end .times do |i| .... end .upto() do |i| ... end loop do ... break [if ]; end while do ... end = [obj01, obj02, ....]; = (4..7).to_a(); #-> [4, 5, 6, 7] ["h", "a", "u", "s"] .length(); .empty?(); ARGV[] # das ist die Command$ oder args[] .each do |i| ... end .each_with_index do |i| value = i[0]; index = i[1]; end .join("_"); # implode() .split("_"); # explode() [-1] == [.length() - 1] [2, 5] # Elemente ab [2] fünf Stueck [2..7] # das Gleiche wie oben [3,1] # ist wieder ein Feld! [] = == .[]=(, ) # beeindruckend def (*var) ... end # kann mit beliebigen Parametern aufgerufen werden, die dann in ein Array gepackt werden. # "def (var1, *var2)" packt nur alle "ueberstehenden" Parameter in das Array (*) splittet das Array in Einzelparameter auf, der Letzte bekommt den Rest als Array ab. # Klassen (beginnen mit Großbuchstabe) class < ... end .superclass(); initialize() # ist der Konstruktor @ # sind "Objekt-Variablen" self. # auf eigene Methoden und Variablen zugreifen (entspricht 'this') # mit einem erneuten "class " kann eine Klasse jederzeit erweitert werden # Getter und Setter def @ end # oder "attr_reader("");" def =() @ = end # oder "attr_writer("");" # beide Methoden mit "attr_accessor("");" require(""); # zusätzliche Dateien einlesen # Sortieren .sort(); .sort do |a, b| a <=> b end .sort do |a, b| a.length <=> b.length end # sortiert erst nach Laenge, dann nach Alphabet .sort do |a, b| if a.length < b.length return -1; elsif a.length == b.length return a <=> b; else return 1; end end # <=>: nur bei "1" wir getauscht (= linkes Element ist groesser als das Rechte) # Strings var = "hallo"; var[2] #-> 97 var[2].chr() #-> "a" var[2, 1] #-> "a" # Symbols var01 = :hallo; puts var01 #-> hallo # Rechnen ** # Potenzierunge vgl " ^ " 1.02e3 == 1020 # Assoziative Arrays (Hashes) = { "key1" => "val1", "key2" => "val2", ... } = {} .each do |i| puts i[0] # key puts i[1] # value end .key? .value? .delete(); # loescht das ganze Paar .empty? .length(); # RegExp muster = // if muster.match() # passt # Rueckgabewert ist Array mit allen Matches else # passt nicht # Rueckgabewert ist nil end //.match(); d # digit w # alpha-numerisch s # whitespace-char D W S # die Komplementäre dazu ? + * # sind gierig ?? +? *? # sind nicht gierig //i # CaseINsensitive # Dateien File.open(, 'r') do |f| .... f.puts "kjdkfjsl"; end bzw. "File.open(, 'w') ... oder 'wb' und 'rb' fuer Binaerdateien Alternative: f = File.open(, 'r'); ... f.close(); = f.readlines(); # schreibt alle Zeilen der Datei in ein Array [/code]