Scala:没有参数的单个抽象方法
Scala: single abstract methods without a parameter
使用 SAM 类型,我们可以:
trait Sam {
def foo(i: Int): String
}
val sam : Sam = _.toString
如果我的抽象方法没有参数怎么办?
您可以像这样使用带有空参数列表的 lambda:
trait Sam {
def foo(): String
}
val sam : Sam = () => "hello"
您不能使用 _
表示法,因为无法使用 _
.
定义零参数函数
如果将 foo
定义为 def foo: String
(即如果它没有参数列表),这将不起作用,因为 SAM 转换仅适用于单一方法只有一个的情况参数列表.
使用 SAM 类型,我们可以:
trait Sam {
def foo(i: Int): String
}
val sam : Sam = _.toString
如果我的抽象方法没有参数怎么办?
您可以像这样使用带有空参数列表的 lambda:
trait Sam {
def foo(): String
}
val sam : Sam = () => "hello"
您不能使用 _
表示法,因为无法使用 _
.
如果将 foo
定义为 def foo: String
(即如果它没有参数列表),这将不起作用,因为 SAM 转换仅适用于单一方法只有一个的情况参数列表.