我有一個類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