Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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

1.021 Aufrufe

Veröffentlicht am

Ruby Einführung

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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. ?

×