在Scala中使用函数值实现方法

Mic*_*ski 4 scala

是否可以使用函数对象/值提供方法的实现?我想以下列精神写一些东西:

abstract class A { def f(x:Int) : Int }

class B extends A { f = identity }
Run Code Online (Sandbox Code Playgroud)

dea*_*mon 7

您可以使用类似函数的字段,如下所示:

abstract class A { val f: (Int) => Int}

val identity = (x: Int) => x*x

class B extends A { override val f = identity }
Run Code Online (Sandbox Code Playgroud)

  • Scala中的方法是*不是*第一类实体.价值观是.函数是值(函数必须是函数语言的任何定义的第一类).通过部分应用提升方法的功能. (3认同)