Scala for Multicore

UPMARC Multicore Computing Summer School 2011

Philipp Haller, EPFL and Stanford University

Code Example: Scala Classes

Creating and playing with a class in Scala's interpreter (REPL). Below is both the code entered into the REPL as well as the REPL's output.

class PersonTry1(name: String, age: Int)
val p = new PersonTry1("erik", 23)
p.name
<console>:10: error: value name is not a member of PersonTry1
      p.name
        ^


class PersonTry2(var name: String, var age: Int)
val p2 = new PersonTry2("erik", 23)
p2.name
res1: String = erik

p2.name = "bjoern"
p2.name
res2: String = bjoern


class Person(val name: String, val age: Int)
val p3 = new Person("erik", 23)
p3.name
p3.name = "bjoern"
<console>:9: error: reassignment to val
      p3.name = "bjoern"
              ^

val persons = Array(new Person("erik", 23), new Person("adam", 23),
   new Person("clara", 17))
val res = persons.filter(p => p.age >= 18)
res.foreach(p => println(p.name))
erik
adam

val (minors, adults) = persons partition (_.age < 18)
adults.foreach(p => println(p.name))
erik
adam