而不是写
((x: Double) => (((y: Double) => y*y))(x+x))(3)
我想写一些类似的东西
((x: Double) => let y=x+x in y*y)(3)
Scala 中有没有类似这种语法糖的东西?
而不是写
((x: Double) => (((y: Double) => y*y))(x+x))(3)
我想写一些类似的东西
((x: Double) => let y=x+x in y*y)(3)
Scala 中有没有类似这种语法糖的东西?
确实有:它叫做“ val
”。:-)
({ x: Double =>
val y = x + x
y * y
})(3)
大括号在这里当然是可选的,我只是在定义函数时更喜欢它们而不是括号(毕竟,这不是 Lisp)。val
关键字在当前词法范围内定义了一个新的绑定。与 Lisp 和 ML 等语言不同,Scala 不强制本地人定义自己的范围。
实际上,var
它也适用于任何范围,但使用它被认为是不好的风格。
好的,这是一个带装订的衬里:
({ x:Double => val y = x + x; y * y })(3)
干杯