什么是以下类型:
(Int, => Double) => String
Run Code Online (Sandbox Code Playgroud)
请注意后面的尾随逗号Int.显然它不是一个句法漏洞,而是一些不同的东西
(Int => Double) => String
Run Code Online (Sandbox Code Playgroud)
例如,当使用重载时:
trait Foo {
def bar(x: (Int, => Double) => String): Unit
def bar(x: (Int => Double) => String): Unit
}
Run Code Online (Sandbox Code Playgroud)
sen*_*nia 25
(Int, => Double) => String是一个带有名字的第二个参数(=> Double)的函数.
你不能创建一个Function2[Int, => Double, String],但你可以创建一个lambda (Int, => Double) => String,这意味着相同:
scala> def s:(Int, => Double) => String =
| (a, b) => if (a > 0) a.toString else b.toString
s: (Int, => Double) => String
scala> s(1, {println("test"); 2.0}) //second parameter is not evaluated
res0: String = 1
scala> s(-1, {println("test"); 2.0})
test
res1: String = 2.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |