是否存在用于在Scala中的匿名函数内绑定值的语法糖?
-
08-07-2019 - |
题
而不是写
((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)。 var
关键字定义当前词法范围内的新绑定。与Lisp和ML等语言不同,Scala不会强制本地人定义自己的范围。
实际上,<=>也适用于任何范围,但它被认为是不好用的风格。
其他提示
好的,这是带有绑定的一个班轮:
({ x:Double => val y = x + x; y * y })(3)
干杯
不隶属于 StackOverflow