Die Programmiersprache Ruby (German Edition)
welcher Zweig ausgeführt werden soll beziehungsweise ob die Schleife weiter ausgeführt wird. Bedingungsausdrücke ergeben oft die Werte
true
oder
false
, aber das ist nicht notwendig. Der Wert von
nil
wird genau wie
false
behandelt, und jeder andere Wert ist dasselbe wie
true
. Das wird wahrscheinlich C-Programmierer überraschen, die erwarten, dass 0 als
false
gilt, sowie JavaScript-Programmierer, die davon ausgehen, dass der leere String
""
als
false
gilt.
1.2 Ruby ausprobieren
Wir hoffen, dass unsere Tour durch die wichtigsten Ruby-Features Ihr Interesse geweckt hat und dass Sie nun darauf brennen, Ruby auszuprobieren. Dafür brauchen Sie einen Ruby-Interpreter und sollten auch wissen, wie man drei Tools – irb, ri und gem – verwendet, die mit dem Interpreter geliefert werden. Dieser Abschnitt erläutert, wie Sie sie erhalten und einsetzen.
1.2.1 Der Ruby-Interpreter
Die offizielle Website für Ruby ist http://www.ruby-lang.org . Wenn Ruby nicht bereits auf Ihrem Computer installiert ist, können Sie dem Download-Link auf der ruby-lang.org -Startseite folgen, um eine Anleitung zum Download und zur Installation der C-basierten Standard-Referenzimplementierung von Ruby zu erhalten.
Nachdem Sie Ruby installiert haben, können Sie den Ruby-Interpreter mit dem Befehl
ruby
aufrufen:
% ruby -e 'puts "Hallo Welt!"'
Hallo Welt!
Die Kommandozeilenoption
-e
sorgt dafür, dass der Interpreter eine einzelne angegebene Ruby-Codezeile ausführt. Häufiger werden Sie Ihr Ruby-Programm allerdings in einer Datei ablegen und den Interpreter anweisen, sie auszuführen:
% ruby hello.rb
Hallo Welt!
1.2.2 Ausgaben anzeigen
Um Ruby-Features auszuprobieren, benötigen Sie eine Möglichkeit, Ausgaben anzuzeigen, damit Ihre Testprogramme ihre Ergebnisse ausgeben können. Die – oben in dem »Hallo Welt«-Code verwendete – Funktion
puts
ist eine Möglichkeit dafür. Einfach gesagt gibt
puts
einen Textstring auf die Konsole aus und fügt einen Zeilenumbruch an (sofern der String nicht bereits mit einem solchen endet). Wird ein Objekt übergeben, das kein String ist, ruft
puts
die
to_s
-Methode dieses Objekts auf und gibt den String aus, den diese Methode zurückgibt.
print
tut mehr oder weniger dasselbe, fügt aber keinen Zeilenumbruch an. Geben Sie zum Beispiel folgendes Zwei-Zeilen-Programm in einen Texteditor ein und speichern Sie es in einer Datei namens count.rb :
9.downto(1) {|n| print n } # Keine Zeilenumbrüche zwischen den Zahlen
puts " Abflug!" # Mit einem Zeilenumbruch beenden
----
Weitere Ruby-Implementierungen
Da es keine formale Spezifikation für die Programmiersprache gibt, ist der Ruby-Interpreter von ruby-lang.org die Referenzimplementierung, die die Sprache definiert. Sie wird manchmal als MRI oder »Matz's Ruby Implementation« bezeichnet. Für Ruby 1.9 wurde der ursprüngliche MRI-Interpreter mit YARV (»Yet Another Ruby Virtual machine«) verschmolzen, um eine neue Referenzimplementierung zu schaffen, die eine interne Kompilierung in Bytecode durchführt und diesen Bytecode dann in einer virtuellen Maschine ausführt.
Die Referenzimplementierung ist jedoch nicht die einzig verfügbare. Bei Redaktionsschluss dieses Buches war bereits eine alternative Implementierung (JRuby) auf 1.0-Level veröffentlicht; diverse andere Implementierungen sind in Entwicklung:
JRuby
JRuby ist eine Java-basierte Implementierung von Ruby, verfügbar unter http://jruby.org . Zum Zeitpunkt der Übersetzung ist die aktuelle Version JRuby 1.1.1, die zu Ruby 1.8 kompatibel ist. Möglicherweise ist eine 1.9-kompatible Version von JRuby verfügbar, wenn Sie dies lesen. JRuby ist Open Source-Software, die vornehmlich bei Sun Microsystems entwickelt wird.
IronRuby
IronRuby ist Microsofts Implementierung von Ruby für ihr .NET-Framework und DLR (Dynamic Language Runtime). Der Quellcode für IronRuby ist unter der Microsoft Permissive License verfügbar. Zum Zeitpunkt der Übersetzung befindet IronRuby sich noch nicht auf 1.0-Release-Niveau. Die Projekthomepage ist http://www.ironruby.net .
Rubinius
Rubinius ist ein Open Source-Projekt, das sich selbst als »alternative Ruby-Implementierung, größtenteils in Ruby geschrieben« beschreibt; »die virtuelle Rubinius-Maschine namens Shotgun lehnt sich an die Smalltalk-80-VM-Architektur an.« Zum Zeitpunkt der Übersetzung hat Rubinius noch nicht Version 1.0 erreicht. Die Homepage für das Rubinus-Projekt ist http://rubini.us .
Cardinal
Cardinal ist eine Ruby-Implementierung, die auf
Weitere Kostenlose Bücher