Is this possible to reach? If yes, please correct my Foo declaration syntax.
class Foo (...) {
...
def /* the nameless method name i开发者_如何学Cmplied here */ (...) : Bar = new Bar (...)
...
}
class Bar (...) {
...
}
val foo : Foo = new Foo (...)
val fooBar : Bar = foo (...)
You should use the apply method:
class Foo (y: Int) {
def apply(x: Int) : Int = x + y
}
val foo : Foo = new Foo (7)
val fooBar = foo (5)
println(fooBar)
Then run the code:
bash$ scala foo.scala
12
I think the using 'apply' for you method name should work like this.
You can extend Function0[Bar]
and implement def apply: Bar
. See Function0
:
object Main extends Application {
val currentSeconds = () => System.currentTimeMillis() / 1000L
val anonfun0 = new Function0[Long] {
def apply(): Long = System.currentTimeMillis() / 1000L
}
println(currentSeconds())
println(anonfun0())
}
精彩评论