This is an old revision of the document!
Scala
Scalable langa
Start
- No primitive types, everything is an object
- No semicolon
- Object is a singleton
- Methods can be defined private or protected. If no modifer is given, method is public.
- No static methods
Hello World
Control structures
if/else-Constructs have a return value
for loop
for (i <- 1 to 10) println(i)
match
Singleton objects
There are no static methods/vars in scala and singleton objects can't be constructed using a constructor with new.
object ScalaObject { val b = 5 def test(a: Double) : Double = { 3.* + b } }
Companion object
Prerequisite: object and class have the same name and are defined in the same file. Companion objects can access their private variables. Singleton objects without companion clases are standalone objects.
Case classes
- Use a factory method for construction
- All passed parameters are a val-variable of the class
- Can be used for pattern matching
- Implement toString, hashCode, equals and have a copy method
case class Person (firstName : String, lastName : String, age : Int){ def isAdult : Boolean = if (age >= 18) true else false }