这可能达到吗?如果是,请更正我的Foo声明语法。
class Foo (...) {
...
def /* the nameless method name implied here */ (...) : Bar = new Bar (...)
...
}
class Bar (...) {
...
}
val foo : Foo = new Foo (...)
val fooBar : Bar = foo (...)
答案 0 :(得分:12)
您应该使用apply方法:
class Foo (y: Int) {
def apply(x: Int) : Int = x + y
}
val foo : Foo = new Foo (7)
val fooBar = foo (5)
println(fooBar)
然后运行代码:
bash$ scala foo.scala
12
答案 1 :(得分:4)
我认为使用'apply'作为方法名称应该像这样工作。
答案 2 :(得分:4)
您可以扩展Function0[Bar]
并实施def apply: Bar
。见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())
}