Daniel Dengler
                                                                                               web develope...
3
                                    Ruby
„ist eine dynamische, freie Programmiersprache,
die sich einfach anwenden und p...
Ruby ≠ Rails
Geschichte
  1993 von Yukihiro Matsumoto in
  Japan entwickelt. Ein üsse aus
  Smalltalk, Perl, Python & LISP
  1995 Erste...
Grundsätzliches
  •    Formatierung: 2 Leerzeichen als Einrückung

  •    Keine Semikolons. Nur wenn man mehrere
       An...
Grundsätzliches
•   Konstanten- und Klassennamen beginnen mit
    einem Großbuchstaben

•   Variablen- und Methodennamen b...
Konventionen

• # Kommentare
• # => Repräsentation des aktuellen Wertes
• # >> Ausgabe auf dem Bildschirm
a = 1; b = 2;
if (a < b)
  puts(quot;a ist kleiner als bquot;);
else
  puts(quot;a ist nicht kleiner als bquot;);
end
# >>...
a = 1; b = 2
if a < b
  puts quot;a ist kleiner als bquot;
else
  puts quot;a ist nicht kleiner als bquot;
end
# >> a ist ...
def method(a, b)
  puts a + b
end

method(1, 2)
method 1, 2
# >> 3
# >> 3
Basisdatentypen
•   Fixnum – ganze Zahlen (1 , 3, 1000)

•   Bignum – große ganze Zahlen
    (10000000000000000)

•   Floa...
a = quot;Weltquot;
puts quot;Hallo #{a}quot;
=> Hallo Welt

puts 'Hallo #{a}'
=> Hallo #{a}

# Alternativ:
puts 'Hallo ' +...
Operatoren

•   =   Zuweisungsoperator (a = 5)

•   +, -, *, /, () Arithmetische Operatoren((1 + 2) * 5)

•   ==, <, >, <=...
Arrays & Hashes

•   Arrays
    [7, 3, 1, 5, 9, 12]
    [Element, Element, …]

•   Hashes
    {:titel => quot;Rubyquot;, :...
array   = [1,2,3]
array   << 4 # => [1,2,3,4]
array   + [5,6] # => [1,2,3,4,5,6]
array   - [1,5] # => [2,3,4,6]

array = [...
# Iteration über ein Array
[1,2,3].each do |i|
  puts i * 2
end
# Ausgabe: 2 4 6

# weitere einfach Arrayoperationen
[1,3,...
hash = {:eins => 1, 'zwei' => 2}
 hash[:eins] # => 1
 hash['zwei'] # => 2
 hash[:drei] # => nil


hash = {:a => {:a => quo...
Kontrollstrukturen

•   Steuern den Programmablauf

•   Wichtige Kontrollstrukturen in Ruby

    •   Entscheidungen: if, u...
a=3
if a < 5
  puts quot;a ist kleiner als 5quot;
elsif a == 5
  puts quot;a ist gleich 5quot;
else
  puts quot;a ist größ...
farbe = :rot
case farbe
when :grün
  puts 'Die Farbe ist Grün'
when :rot, :blau
  puts 'Die Farbe ist Rot oder Blau'
else
...
Klassen, Methoden & Objekte


•   Klassen beginnen mit den Schlüsselwort class
    und können verschiedene Methoden beinha...
class Fahrzeug
end

auto = Fahrzeug.new
class Fahrzeug
  def kmh
    @kmh # gleichbedeutend mit: return @kmh
  end
  def kmh=(wert)
    @kmh = wert
  end
end

aut...
class Fahrzeug       class Fahrzeug
  def kmh              attr_reader :kmh
    @kmh               attr_writer :kmh
  end ...
class Fahrzeug
  attr_accessor :kmh

  # wird beim Erstellen aufgerufen
  def initialize(kmh)
    @kmh = kmh
  end
  def b...
class Fahrzeug
  attr_accessor :kmh
  def initialize(kmh)
    # kmh ist eine Variable
    # @kmh ist eine Instanzvariable
...
class Fahrzeug
  attr_accessor :kmh

  def initialize(kmh = 0)
    @kmh = kmh
  end

  def beschleunigen
    @kmh += 10
  ...
class Auto < Fahrzeug   auto_a = Auto.new
   @@anzahl = 0          auto_a.kmh # => 0
   # @@anzahl ist eine   auto_a.besch...
Ruby Skripte ausführen
•   Interpreter

    •   ruby skriptname.rb



•   Interactive Shell

    •   irb skriptname.rb
Online Ruby Interpreter
•   http://tryruby.hobix.com

•   Geeignet um den Quellcode der Beispiele selbst zu
    testen und...
?
Nächste SlideShare
Wird geladen in …5
×

Ruby on Rails SS09 03

945 Aufrufe

Veröffentlicht am

Ruby Einführung

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
945
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie































  • Ruby on Rails SS09 03

    1. 1. Daniel Dengler web developer Ruby on Rails Workshop SS 2009 „Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
    2. 2. 3 Ruby „ist eine dynamische, freie Programmiersprache, die sich einfach anwenden und produktiv einsetzen lässt. Sie hat eine elegante Syntax, die man leicht lesen und schreiben kann.“ (Quelle: http://www.ruby-lang.org /de)
    3. 3. Ruby ≠ Rails
    4. 4. Geschichte 1993 von Yukihiro Matsumoto in Japan entwickelt. Ein üsse aus Smalltalk, Perl, Python & LISP 1995 Erste Veröffentlichung 2000 erste nicht japanische Literatur in Europa und Amerika 2004 Erscheinen von Ruby on Rails verhilft Ruby zum heutigen Erfolg Quellen: http://www.ruby-lang.org/de/about, http://de.wikipedia.org/wiki/Ruby_%28Programmiersprache%29, Stand: 15.10.2007
    5. 5. Grundsätzliches • Formatierung: 2 Leerzeichen als Einrückung • Keine Semikolons. Nur wenn man mehrere Anweisungen in eine Zeile bringen will nötig • Klammern können weggelassen werden, solange die Anweisung eindeutig bleibt • Implizite Rückgabewerte. Das Ergebnis der letzten ausgeführten Operation ist gleichzeitig Rückgabewert der Methode (Quelle: vgl. R. Wartala, J. Krutisch: Webanwendungen mit Ruby on Rails, Addison-Wesley 2007)
    6. 6. Grundsätzliches • Konstanten- und Klassennamen beginnen mit einem Großbuchstaben • Variablen- und Methodennamen beginnen mit einem Kleinbuchstaben • Variablen müssen vor ihrer Verwendung nicht de niert werden • Vollständig Objekt-Orientiert (es gibt keine primitiven Datentypen)
    7. 7. Konventionen • # Kommentare • # => Repräsentation des aktuellen Wertes • # >> Ausgabe auf dem Bildschirm
    8. 8. a = 1; b = 2; if (a < b) puts(quot;a ist kleiner als bquot;); else puts(quot;a ist nicht kleiner als bquot;); end # >> a ist kleiner als b
    9. 9. a = 1; b = 2 if a < b puts quot;a ist kleiner als bquot; else puts quot;a ist nicht kleiner als bquot; end # >> a ist kleiner als b
    10. 10. def method(a, b) puts a + b end method(1, 2) method 1, 2 # >> 3 # >> 3
    11. 11. Basisdatentypen • Fixnum – ganze Zahlen (1 , 3, 1000) • Bignum – große ganze Zahlen (10000000000000000) • Float – Fließkommazahlen (1.45) • String – Zeichenketten (quot;Hallo Weltquot;, 'Hallo Welt') • Symbol – Bezeichner (:name)
    12. 12. a = quot;Weltquot; puts quot;Hallo #{a}quot; => Hallo Welt puts 'Hallo #{a}' => Hallo #{a} # Alternativ: puts 'Hallo ' + a => Hallo Welt
    13. 13. Operatoren • = Zuweisungsoperator (a = 5) • +, -, *, /, () Arithmetische Operatoren((1 + 2) * 5) • ==, <, >, <=, >=, != Vergleichsoperatoren (a == 5) • and, &&, or, || Logische Operatoren (true or false)
    14. 14. Arrays & Hashes • Arrays [7, 3, 1, 5, 9, 12] [Element, Element, …] • Hashes {:titel => quot;Rubyquot;, :untertitel => quot;für Einstiegerquot;} {Schlüssel => Wert, Schlüssel => Wert, …}
    15. 15. array = [1,2,3] array << 4 # => [1,2,3,4] array + [5,6] # => [1,2,3,4,5,6] array - [1,5] # => [2,3,4,6] array = [1,2,3] # => [1,2,3] array[0] # => 1 array[2] # => 3 array[3] # => nil
    16. 16. # Iteration über ein Array [1,2,3].each do |i| puts i * 2 end # Ausgabe: 2 4 6 # weitere einfach Arrayoperationen [1,3,2].sort # => [1,2,3] [1,3,2].sort.reverse # => [3,2,1]
    17. 17. hash = {:eins => 1, 'zwei' => 2} hash[:eins] # => 1 hash['zwei'] # => 2 hash[:drei] # => nil hash = {:a => {:a => quot;aaquot;}, :b => quot;bquot;} hash[:a] # => {:a => quot;aaquot;} hash[:a][:a] # => quot;aaquot;
    18. 18. Kontrollstrukturen • Steuern den Programmablauf • Wichtige Kontrollstrukturen in Ruby • Entscheidungen: if, unless, case • Schleifen: while, until, for, .each
    19. 19. a=3 if a < 5 puts quot;a ist kleiner als 5quot; elsif a == 5 puts quot;a ist gleich 5quot; else puts quot;a ist größer als 5quot; end farbe = :rot if farbe != :grün puts 'Die Farbe ist nicht Grün' end # unless ist das negierte if unless farbe == :grün puts 'Die Farbe ist nicht Grün' end puts 'Die Farbe ist nicht Grün' unless farbe == :grün puts (a == 5 ? 'a ist gleich 5' : 'a ist nicht gleich 5')
    20. 20. farbe = :rot case farbe when :grün puts 'Die Farbe ist Grün' when :rot, :blau puts 'Die Farbe ist Rot oder Blau' else puts 'Die Farbe ist nicht bekannt' end a=1 while a < 3 puts a # Inkrement Operator (+1) a++ # entspricht a = a + 1 end # Ausgabe: 1 2
    21. 21. Klassen, Methoden & Objekte • Klassen beginnen mit den Schlüsselwort class und können verschiedene Methoden beinhalten • Methoden beginnen mit dem Schlüsselwort def • Die konkrete Instanz einer Klasse ist ein Objekt
    22. 22. class Fahrzeug end auto = Fahrzeug.new
    23. 23. class Fahrzeug def kmh @kmh # gleichbedeutend mit: return @kmh end def kmh=(wert) @kmh = wert end end auto = Fahrzeug.new auto.kmh = 10 auto.kmh=(10) puts auto.kmh # >> 10
    24. 24. class Fahrzeug class Fahrzeug def kmh attr_reader :kmh @kmh attr_writer :kmh end end def kmh=(kmh) @kmh = kmh class Fahrzeug end attr_accessor :kmh end end class Fahrzeug auto = Fahrzeug.new attr_reader :kmh def kmh=(kmh) auto.kmh = 10 @kmh = kmh end puts auto.kmh end # >> 10
    25. 25. class Fahrzeug attr_accessor :kmh # wird beim Erstellen aufgerufen def initialize(kmh) @kmh = kmh end def beschleunigen @kmh += 10 # entspricht: @kmh = @kmh + 10 end end auto = Fahrzeug.new(5) auto.kmh # => 5 auto.kmh = 10 # => 10 auto.beschleunigen # => 20
    26. 26. class Fahrzeug attr_accessor :kmh def initialize(kmh) # kmh ist eine Variable # @kmh ist eine Instanzvariable @kmh = kmh end def beschleunigen @kmh += 10 end end auto = Fahrzeug.new(5) auto.kmh # => 5 auto.kmh = 10 # => 10 auto.beschleunigen # => 20 # new, kmh, kmh= und beschleunigen sind Methodenaufrufe
    27. 27. class Fahrzeug attr_accessor :kmh def initialize(kmh = 0) @kmh = kmh end def beschleunigen @kmh += 10 end end auto = Fahrzeug.new(5) auto.kmh # => 5 auto.beschleunigen # => 15 auto = Fahrzeug.new auto.kmh # => 0 auto.beschleunigen # => 10
    28. 28. class Auto < Fahrzeug auto_a = Auto.new @@anzahl = 0 auto_a.kmh # => 0 # @@anzahl ist eine auto_a.beschleunigen Klassenvariable # => 25 auto_a.anzahl # => 1 def initialize auto_b = Auto.new @@anzahl++ auto_b.anzahl # => 2 super auto_a.anzahl # => 2 end auto_a.kmh # => 25 auto_b.kmh # => 0 def beschleunigen @kmh += 25 end def anzahl @@anzahl end end
    29. 29. Ruby Skripte ausführen • Interpreter • ruby skriptname.rb • Interactive Shell • irb skriptname.rb
    30. 30. Online Ruby Interpreter • http://tryruby.hobix.com • Geeignet um den Quellcode der Beispiele selbst zu testen und sich mit der Sprache vertraut zu machen • Bietet ein Ruby-Lern-Tutorial aus 8 Blöcken • Bitte jetzt anfangen (und zu Hause fertig machen!) • Lesen und merken sie sich die Anweisungen des Anfangs, falls sie stecken bleiben sollten! ( help Kapitelnummer, Ctrl + D)
    31. 31. ?

    ×