scala> class Person {
| private var firstname = "Robby"
| private var lastname = "Pelssers"
| }
defined class Person
scala> object Person {
| def getFirstName(p: Person) = p.firstname
| }
:9: error: variable firstname in class Person cannot be accessed in Person
def getFirstName(p: Person) = p.firstname
scala> object container {
| class Person {
| private var firstname = "Robby"
| private var lastname = "Pelssers"
| }
|
| object Person {
| def getFirstName(p: Person) = p.firstname
| }
| }
defined module container
scala> import container.Person
import container.Person
scala> val person = new Person()
person: container.Person = container$Person@1a71d29a
scala> Person.getFirstName(person)
res0: java.lang.String = Robby
Important side note!! As of Scala 2.9.x you can use the :paste command and everything will work normally.
scala> :paste
// Entering paste mode (ctrl-D to finish)
class Person {
private var firstname = "Robby"
private var lastname = "Pelssers"
}
object Person {
def getFirstName(p: Person) = p.firstname
}
// Exiting paste mode, now interpreting.
defined class Person
defined module Person
scala> Person.getFirstName(new Person())
res0: java.lang.String = Robby
No comments:
Post a Comment