Urlaub -> Scala (5)
Scala
Heute geht es mal in den Datentyp List.... Meine ersten Gehversuche werde ich mit der bekannte case class Derivative machen
Kategorie Heute geht es mal in den Datentyp List.... Meine ersten Gehversuche werde ich mit der bekannte case class Derivative machen
Also dann fange ich einmal an ->
case class Derivative(manufacturer : String, model : String, dailycost : Double )
val l : List[Derivative] = List(Derivative("Mercedes","A-Klasse",10.5),Derivative("Mercedes","C-Klasse",11.5),Derivative("VW","Polo",6.0),Derivative("VW","Golf",9.5))
println(l)
Output:
List(Derivative(Mercedes,A-Klasse,10.5), Derivative(Mercedes,C-Klasse,11.5), Derivative(VW,Polo,6.0), Derivative(VW,Golf,9.5))
Einfach verständlich und lesbar
Jetzt wird gefiltert ->
println(l.filter(x => x.dailycost < 10.0))
Könnte man auch eine Funktion mit einem Parameter definieren und diese reinschreiben
Die Definition der Liste l sieht irgendwie nicht rund aus, man kann es auch so machen ->
val l1 = Derivative("Mercedes","A-Klasse",10.5) :: Derivative("Mercedes","C-Klasse",11.5) :: Derivative("VW","Polo",6.0) :: Derivative("VW","Golf",9.5) :: Nil
Mit :: kann man ein Element an eine Liste anhängen, man beachte dies ist ein Operator un man kann ihn auch überschreiben
Zwei Listen kann man mit ::: mergen ->
val a = l.remove( x => x.manufacturer == "Mercedes" )
val b = l.remove( x => x.manufacturer == "VW" )
println(a)
println(b)
val c = a ::: b
println(c)
Jetzt aber noch ein Beispiel was die lesbarkeit von Skala zeigt. Angenommen wir haben eine Klasse Person mit den Properties age,first und valid.
Zu schreiben ist eine Routine, welche eine Liste mit der Personen erzeugt, welche valid sind, nach Alter sortiert und die Vornamen enthält.
In Scala kann dies ungefähr so aussehen:
case class Person(age : Int, first : String, valid : Boolean)
def validByAge(in : List[Person]) = in.filter(_.valid).sort(_.age < _.age).map(_.first)
Das wars
Gruß JJR
case class Derivative(manufacturer : String, model : String, dailycost : Double )
val l : List[Derivative] = List(Derivative("Mercedes","A-Klasse",10.5),Derivative("Mercedes","C-Klasse",11.5),Derivative("VW","Polo",6.0),Derivative("VW","Golf",9.5))
println(l)
Output:
List(Derivative(Mercedes,A-Klasse,10.5), Derivative(Mercedes,C-Klasse,11.5), Derivative(VW,Polo,6.0), Derivative(VW,Golf,9.5))
Einfach verständlich und lesbar
Jetzt wird gefiltert ->
println(l.filter(x => x.dailycost < 10.0))
Könnte man auch eine Funktion mit einem Parameter definieren und diese reinschreiben
Die Definition der Liste l sieht irgendwie nicht rund aus, man kann es auch so machen ->
val l1 = Derivative("Mercedes","A-Klasse",10.5) :: Derivative("Mercedes","C-Klasse",11.5) :: Derivative("VW","Polo",6.0) :: Derivative("VW","Golf",9.5) :: Nil
Mit :: kann man ein Element an eine Liste anhängen, man beachte dies ist ein Operator un man kann ihn auch überschreiben
Zwei Listen kann man mit ::: mergen ->
val a = l.remove( x => x.manufacturer == "Mercedes" )
val b = l.remove( x => x.manufacturer == "VW" )
println(a)
println(b)
val c = a ::: b
println(c)
Jetzt aber noch ein Beispiel was die lesbarkeit von Skala zeigt. Angenommen wir haben eine Klasse Person mit den Properties age,first und valid.
Zu schreiben ist eine Routine, welche eine Liste mit der Personen erzeugt, welche valid sind, nach Alter sortiert und die Vornamen enthält.
In Scala kann dies ungefähr so aussehen:
case class Person(age : Int, first : String, valid : Boolean)
def validByAge(in : List[Person]) = in.filter(_.valid).sort(_.age < _.age).map(_.first)
Das wars
Gruß JJR
Kommentare
new Comparison<Person>(delegate(Person p1,Person p2) { return p1.Age.CompareTo(p2.Age); })
Gruß JJR
Erstellt von JakeJBlues um 11:58:15 PM am 07/28/2009 | - Website - |