20. Definice třídy v Javě
class Person {
private String name;
public Person(String name) {
this.setName(name);
}
public void getName() {
return this.name;
}
public String setName(String name) {
this.name = name;
}
}
22. Singleton v Javě
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() { }
public static Singleton getInstance() {
return instance;
}
}
36. Pattern matching v akci
val audience = List[Person](...)
/* To jste VY! */
val enthusiasts = audience filter {
case _ => false
}
37. Pattern matching v akci
val enthusiasts = audience filter {
case Person("Karel","Smutný") => true
case _ => false
}
38. Pattern matching v akci
val enthusiasts = audience filter {
case Person("Karel","Smutný") => true
case Person("Jan",_) => true
case _ => false
}
39. Pattern matching v akci
val enthusiasts = audience filter {
case Person("Karel","Smutný") => true
case Person("Jan",_) => true
case Person("Tomas",sur) =>
println(sur)
true
case _ => false
}
40. Pattern matching v akci
val enthusiasts = audience filter {
case Person("Karel","Smutný") => true
case Person("Jan",_) => true
case Person("Tomas",sur) =>
println(sur)
true
case Person(name,sur) => true
case _ => false
}
56. Actor model
class Announcer extends Actor {
def receive = {
case s: String => println(s)
case _ => println("Ignored!")
}
}
57. Actor model
val zf = Actor.actorOf[Announcer].start()
zf ! "Super" //Actor vypíše Super
zf ! 5 //Actor ignoruje zprávu
val a = Actor.actorOf[Announcer].start()
val b = Actor.actorOf[Announcer].start()
val c = Actor.actorOf[Announcer].start()
65. Scala je elegantní jazyk se stručnou
syntaxí, který umožňuje jednoduše
řešit složité problémy.
66. Literatura
• Programming in Scala, Second Edition
http://www.artima.com/shop/programming_in_scala_2ed
• Dokumentace na webu Scaly
http://www.scala-lang.org/node/197