Kurz: Ruby wurde Mitte der 1990er von Yukihiro “Matz” Matsumoto entworfen mit dem Ziel, Programmierer glücklich zu machen. Sie ist rein objektorientiert (selbst Zahlen sind Objekte), dynamisch typisiert und sehr ausdrucksstark.
Teil des Kurses Ruby
Was ist Ruby?
Ruby wurde Mitte der 1990er von Yukihiro “Matz” Matsumoto entworfen mit dem Ziel, Programmierer glücklich zu machen. Sie ist rein objektorientiert (selbst Zahlen sind Objekte), dynamisch typisiert und sehr ausdrucksstark. Bekannt wurde sie durch Ruby on Rails (Webframework), sie wird aber auch für Skripte, Automatisierung (Chef, Homebrew, Jekyll) und Tests (RSpec) eingesetzt.
Installation und Ausführen
- Linux/macOS: Paketmanager oder
rbenv/asdf; Windows: RubyInstaller - Prüfen:
ruby -v
ruby hallo.rb # Datei ausführen
ruby -e 'puts 1 + 2' # eine Zeile
irb # interaktive Konsole
gem install rails # Paket (Gem) installierenDas erste Programm
hallo.rb
puts "Hallo Ruby!"
name = "Mia"
puts "Hallo, #{name}!"
print "ohne Zeilenumbruch"
puts
p "p zeigt Debug-Darstellung"Ausgabe:
Hallo Ruby!
Hallo, Mia!
ohne Zeilenumbruch
"p zeigt Debug-Darstellung"putsgibt Text mit Zeilenumbruch aus,printohne,pzeigt eine Debug-Darstellung (mit Anführungszeichen)#{...}fügt Ausdrücke in Strings mit doppelten Anführungszeichen ein- Kommentare beginnen mit
#; mehrzeilig:=begin ... =end - Klammern bei Methodenaufrufen sind meist optional
Alles ist ein Objekt
puts 5.class
puts 3.14.class
puts "text".class
puts nil.class
puts :symbol.class
puts [1, 2].class
puts (1..3).class
puts 5.even?
puts -7.abs
puts 10.0.floor
puts 3.times.to_a.inspect
puts "ruby".upcase.reverse
puts 5.respond_to?(:+)Ausgabe:
Integer
Float
String
NilClass
Symbol
Array
Range
false
7
10
[0, 1, 2]
YBUR
trueMethoden mit ? am Ende liefern meist true/false, solche mit ! verändern das Objekt (z. B. sort!).
Eingabe
zeile = "Mia 17".split
name, alter = zeile
puts "#{name} ist #{alter.to_i + 1} im nächsten Jahr"
# Interaktiv: name = gets.chompAusgabe:
Mia ist 18 im nächsten JahrMerke
- Ruby ist rein objektorientiert: alles ist ein Objekt
puts,print,p;#{...}für String-Interpolation- Klammern sind optional, Methodennamen mit
?und!haben Konventionen irbzum Ausprobieren,gemfür Pakete
Übungsaufgabe
Gib Name, Alter und Lieblingsfarbe mit Interpolation aus.
Quiz zur Selbstkontrolle
Was gibt p im Unterschied zu puts aus?
- Die Debug-Darstellung (inspect) (richtig)
- Nichts
- Den Typ
- Eine Warnung
Was bedeutet ein Ausrufezeichen am Methodennamen (sort!)?
- Die Methode verändert das Objekt selbst (richtig)
- Die Methode ist gefährlich und verboten
- Die Methode ist privat
- Die Methode ist asynchron
Wie fügt man eine Variable in einen String ein?
- ”#{name}” (richtig)
- “$name”
- “{name}”
- “%name”
Weiter im Kurs
Weiter: Variablen, Zahlen und Strings
Alle Kapitel: Ruby im Überblick