EMZETT.
Login

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

Kapitel 1 von 12 im Kurs Ruby. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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) installieren

Das 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"
  • puts gibt Text mit Zeilenumbruch aus, print ohne, p zeigt 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
true

Methoden 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.chomp

Ausgabe:

Mia ist 18 im nächsten Jahr

Merke

  • Ruby ist rein objektorientiert: alles ist ein Objekt
  • puts, print, p; #{...} für String-Interpolation
  • Klammern sind optional, Methodennamen mit ? und ! haben Konventionen
  • irb zum Ausprobieren, gem für Pakete

Übungsaufgabe

Gib Name, Alter und Lieblingsfarbe mit Interpolation aus.

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Variablen, Zahlen und Strings

Alle Kapitel: Ruby im Überblick