- Strona domowa
- Najlepsze IDE do Scali w tej chwili to InteliJ IDEA
- Tutorial (trochę stary, ale dobry, sam się z niego nauczyłem Scali)
- Prezentacja o Scali (nowsza wersja tej prezentacji)
- Scala Tricks
- Książka (Piersza edycja udostępniona free)
- Inna książka free
Hello World in Scala:
object Hello {
def main(args: Array[String]) {
val alice = new Person("Alicja", 21)
alice.age += 2
println("Hello " + alice.firstName + "(" + alice.age + ")!") // => Hello Alicja(23)!
}
}
class Person(val firstName: String, var age: Int)
Hello World using Akka actors:
import akka.actor.{Props, Actor, ActorSystem}
object HelloAkka {
def main(args: Array[String]) {
val system = ActorSystem("HelloSystem")
val actor = system.actorOf(Props[HelloActor])
actor ! "test" // send message to actor
actor ! 42 // send message to actor
println("Main thread: " + Thread.currentThread.getId)
system.shutdown()
}
}
class HelloActor extends Actor {
override def preStart() {
println("HelloActor startuje..")
println("HelloActor thread: " + Thread.currentThread.getId)
}
// receive message
def receive = {
case i: Int => println("Dostałem int'a: " + i)
case s: String => println("Dostałem stringa'a: " + s)
}
}
Output:
Main thread: 1
HelloActor startuje..
HelloActor thread: 13
Dostałem stringa'a: test
Dostałem int'a: 42