nam*_*min 6 scala anonymous-function syntactic-sugar
而不是写作
((x: Double) => (((y: Double) => y*y))(x+x))(3)
Run Code Online (Sandbox Code Playgroud)
我想写点类似的东西
((x: Double) => let y=x+x in y*y)(3)
Run Code Online (Sandbox Code Playgroud)
在Scala中有类似的这种语法糖吗?
Dan*_*wak 14
确实存在:它被称为" val".:-)
({ x: Double =>
val y = x + x
y * y
})(3)
Run Code Online (Sandbox Code Playgroud)
大括号当然是可选的,我只是在定义函数时更喜欢括号(毕竟,这不是Lisp).该val关键字定义当前词法范围内的新绑定.与Lisp和ML等语言不同,Scala不会强制本地人定义自己的范围.
实际上,它var也适用于任何范围,但它被认为是不好的使用方式.
好的,这是带有绑定的一个班轮:
({ x:Double => val y = x + x; y * y })(3)
Run Code Online (Sandbox Code Playgroud)
干杯
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |