<- Arrays
Iteratoren ->

Was man mit Arrays machen kann

Das ist alles sehr nett, aber kann man irgendwas cooles mit Arrays machen? Sicherlich kann man das.

Array#sort

Sie können Arrays mit der Methode Array#sort sortieren.


>> primzahlen = [ 11, 5, 7, 2, 13, 3 ]
=> [11, 5, 7, 2, 13, 3]
>> primzahlen.sort 
=> [2, 3, 5, 7, 11, 13]
>>
?> namen = [ "Melissa", "Daniel", "Samantha", "Jeffrey"]  
=> ["Melissa", "Daniel", "Samantha", "Jeffrey"]
>> namen.sort
=> ["Daniel", "Jeffrey", "Melissa", "Samantha"]
                       

Array#reverse

Sie können Arrays umdrehen:


>> namen
=> ["Melissa", "Daniel", "Samantha", "Jeffrey"]
>> namen.reverse 
=> ["Jeffrey", "Samantha", "Daniel", "Melissa"]
                       

Array#length

Sie können die Länge eines Arrays herausfinden:


>> namen.length 
=> 4
                       

Array-Arithmetik

Die Methoden Array#+, Array#-, und Array#* arbeiten so, wie Sie es vom Namen her schon erwarten würden. Es gibt kein Methode Array#/ (wie wollen Sie ein Array dividieren?)


>> namen = [ "Melissa", "Daniel", "Jeff" ]
=> ["Melissa", "Daniel", "Jeff"]
>> namen + [ "Joel" ] 
=> ["Melissa", "Daniel", "Jeff", "Joel"]
>> namen - [ "Daniel" ]
=> ["Melissa", "Jeff"]
>> namen * 2
=> ["Melissa", "Daniel", "Jeff", "Melissa", "Daniel", "Jeff"]
                       

Selbstverständlich gibt es auch hier die Abkürzungen +=, -= und *=.

Arrays ausgeben

Zum Abschluss: Arrays kann man auch ausgeben.


>> namen
=> ["Melissa", "Daniel", "Jeff"]
>> puts namen
Melissa
Daniel
Jeff
=> nil
                       

Entsinnen Sie sich: nil bedeutet, dass puts nichts zurückgegeben hat. Was denken Sie passiert, wenn Sie versuchen, ein Array in eine Zeichenkette mit Array#to_s umzuwandeln?


>> namen
=> ["Melissa", "Daniel", "Jeff"]  
>> namen.to_s
=> "MelissaDanielJeff"
>> primzahlen
=> [11, 5, 7, 2, 13, 3]
>> primzahlen.to_s
=> "11572133"
                       

Übungen

  1. Was denken Sie, macht der folgende Code?:

    
    >> addressen = [ [ 285, "Ontario Dr"], [ 17, "Quebec St"], [ 39, "Main St" ] ]
    >> addressen.sort
                           

    Und das hier:

    
    >> addressen = [ [ 20, "Ontario Dr"], [ 20, "Main St"] ]
    >> addressen.sort
                           

    Finden Sie es heraus in irb

<- Arrays
Iteratoren ->