是否可以使用函數對象/值提供方法的實現?我還想寫在精神的東西:在Scala中使用函數值實現方法
abstract class A { def f(x:Int) : Int }
class B extends A { f = identity }
是否可以使用函數對象/值提供方法的實現?我還想寫在精神的東西:在Scala中使用函數值實現方法
abstract class A { def f(x:Int) : Int }
class B extends A { f = identity }
abstract class A { def f: (Int)=>Int }
class B extends A { val f = identity _ }
class C extends A { def f = identity _ }
class D extends A { def f = (x:Int) => -x }
如果你被卡住一個正常的閃避,那麼你可以做的最好的是
abstract class Z { def f(x:Int):Int }
class Y extends Z { def f(x:Int) = identity(x) }
可以使用類型功能的一個領域是這樣的:
abstract class A { val f: (Int) => Int}
val identity = (x: Int) => x*x
class B extends A { override val f = identity }
,是有一種方法和這樣的值之間的差異? (P.S.身份已經定義了ID Predef,我不想讓它參數化;) – 2010-01-23 22:25:10
Scala中的方法不是*第一類實體。值是。函數是值(函數必須是功能語言定義的第一類)。方法通過部分應用被解除了功能。 – 2010-01-23 22:52:54