我有一个类Scala的方法,如下所示:实现使用部分功能
trait Foo {
def greet(name: String) : String
}
trait Bar {
def hello(name: String) = s"Hello ${name}!"
}
class Greeter extends Foo with Bar {
def greet(name: String) = hello(name)
}
我很好奇,如果有可能使用hello
方法的部分应用程序来实现greet
?喜欢的东西:
class Greeter extends Foo with Bar {
def greet = hello
}
(显然,这不工作)
所以,总之,这是不可能的,除非s uper类已经将方法定义为String => String,而不是(name:String)String。有趣的是,尽管具有相同的名称和有效类型的String => String,'def greet(name:String)= hello(name)'和'def greet = hello _'并不相同,并且可以同时定义同一班。 Haskell 1,Scala 0.;) – 2013-05-05 18:48:39