}
println(a == b) //object equality
println(a eq b) //ref equality
println(MySingleton.foo)
println(a.foo)
println(b.foo)
val c
:MySingleton.
type = MySingleton
require (eid.nonEmpty, "EID cannot be blank") //Precondition, throw IllegalArgumentException
require (firstName.nonEmpty, "firstName cannot be blank")
require (lastName.nonEmpty, "lastName cannot be blank")
def this(firstName
:String, lastName
:String
) = this("000-00-0000", firstName, lastName
)
def this(firstName
:String
) = this(firstName,
"Unknown")
override def toString
= s
"Employee($firstName, $lastName)"
}
class Manager
(firstName
:String, lastName
:String,
val employee
:List
[Employee
]) extends Employee
(firstName, lastName
)
def create3WithSameName
(firstName
:String, lastName
:String
):List
[Employee
] = { List
(new Employee
(firstName, lastName
),
new Employee
(firstName, lastName
),
new Employee
(firstName, lastName
)) }
def retrieveSecretInfo
(x
:Employee
) = { x.eid
}
}
println(Employee.create3WithSameName("Diane", "Sawyer"))
println(Int.MinValue)
val d
= new Employee
("100-00-1029",
"Laura",
"Bocelli")
//println(d.eid) //doesn't work
println(Employee.retrieveSecretInfo(d))
}
println(foo.apply(30))
println(foo(30))
val list
= List
(1,
2,
3,
4,
5,
6) val list2
= List.
apply(1,
2,
3,
4,
5,
6) //If you don't see a new, look in the companion object
val item2alternate
= list.
apply(1)
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJb2JqZWN0IE15U2luZ2xldG9uIHsKIAlkZWYgZm9vID0gMTkKIH0KCiB2YWwgYSA9IE15U2luZ2xldG9uCiB2YWwgYiA9IE15U2luZ2xldG9uCgpwcmludGxuKGEgPT0gYikgIC8vb2JqZWN0IGVxdWFsaXR5CnByaW50bG4oYSBlcSBiKSAgLy9yZWYgZXF1YWxpdHkKCnByaW50bG4oTXlTaW5nbGV0b24uZm9vKQpwcmludGxuKGEuZm9vKQpwcmludGxuKGIuZm9vKQoKdmFsIGM6TXlTaW5nbGV0b24udHlwZSA9IE15U2luZ2xldG9uCgpjbGFzcyBFbXBsb3llZShwcml2YXRlIHZhbCBlaWQ6U3RyaW5nLCB2YWwgZmlyc3ROYW1lOlN0cmluZywgdmFsIGxhc3ROYW1lOlN0cmluZykgZXh0ZW5kcyBBbnlSZWYgewoKIAlyZXF1aXJlIChlaWQubm9uRW1wdHksICJFSUQgY2Fubm90IGJlIGJsYW5rIikgIC8vUHJlY29uZGl0aW9uLCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KIAlyZXF1aXJlIChmaXJzdE5hbWUubm9uRW1wdHksICJmaXJzdE5hbWUgY2Fubm90IGJlIGJsYW5rIikgCiAJcmVxdWlyZSAobGFzdE5hbWUubm9uRW1wdHksICJsYXN0TmFtZSBjYW5ub3QgYmUgYmxhbmsiKSAKCiAJZGVmIHRoaXMoZmlyc3ROYW1lOlN0cmluZywgbGFzdE5hbWU6U3RyaW5nKSA9IHRoaXMoIjAwMC0wMC0wMDAwIiwgZmlyc3ROYW1lLCBsYXN0TmFtZSkKCiAJZGVmIHRoaXMoZmlyc3ROYW1lOlN0cmluZykgPSB0aGlzKGZpcnN0TmFtZSwgIlVua25vd24iKQoKIAlkZWYgdGhpcygpID0gdGhpcygiVW5rbm93biIpCgogCW92ZXJyaWRlIGRlZiB0b1N0cmluZyA9IHMiRW1wbG95ZWUoJGZpcnN0TmFtZSwgJGxhc3ROYW1lKSIKCiB9CgoKIGNsYXNzIE1hbmFnZXIoZmlyc3ROYW1lOlN0cmluZywgbGFzdE5hbWU6U3RyaW5nLCB2YWwgZW1wbG95ZWU6TGlzdFtFbXBsb3llZV0pCiAJZXh0ZW5kcyBFbXBsb3llZShmaXJzdE5hbWUsIGxhc3ROYW1lKQoKCiBvYmplY3QgRW1wbG95ZWUgewogCWRlZiBjcmVhdGUzV2l0aFNhbWVOYW1lKGZpcnN0TmFtZTpTdHJpbmcsIGxhc3ROYW1lOlN0cmluZyk6TGlzdFtFbXBsb3llZV0gPSB7CiAJCUxpc3QobmV3IEVtcGxveWVlKGZpcnN0TmFtZSwgbGFzdE5hbWUpLAogCQkJbmV3IEVtcGxveWVlKGZpcnN0TmFtZSwgbGFzdE5hbWUpLAoJCQluZXcgRW1wbG95ZWUoZmlyc3ROYW1lLCBsYXN0TmFtZSkpCiAJfQoKIAlkZWYgcmV0cmlldmVTZWNyZXRJbmZvKHg6RW1wbG95ZWUpID0gewogCQl4LmVpZAogCX0KIH0KCiBwcmludGxuKEVtcGxveWVlLmNyZWF0ZTNXaXRoU2FtZU5hbWUoIkRpYW5lIiwgIlNhd3llciIpKQoKIHByaW50bG4oSW50Lk1pblZhbHVlKQoKIHZhbCBkID0gbmV3IEVtcGxveWVlKCIxMDAtMDAtMTAyOSIsICJMYXVyYSIsICJCb2NlbGxpIikKCiAvL3ByaW50bG4oZC5laWQpICAvL2RvZXNuJ3Qgd29yawoKcHJpbnRsbihFbXBsb3llZS5yZXRyaWV2ZVNlY3JldEluZm8oZCkpCgpjbGFzcyBGb28oeDpJbnQpIHsKCglkZWYgYXBwbHkoeTpJbnQpID0geCArIHkKfQoKdmFsIGZvbyA9IG5ldyBGb28oMTgpCnByaW50bG4oZm9vLmFwcGx5KDMwKSkKcHJpbnRsbihmb28oMzApKQoKdmFsIGxpc3QgPSBMaXN0KDEsMiwzLDQsNSw2KQp2YWwgbGlzdDIgPSBMaXN0LmFwcGx5KDEsMiwzLDQsNSw2KSAgLy9JZiB5b3UgZG9uJ3Qgc2VlIGEgbmV3LCBsb29rIGluIHRoZSBjb21wYW5pb24gb2JqZWN0Cgp2YWwgaXRlbTIgPSBsaXN0KDEpCnZhbCBpdGVtMmFsdGVybmF0ZSA9IGxpc3QuYXBwbHkoMSkKCgoKCn0=