当前位置:  开发笔记 > 编程语言 > 正文

是否存在用于在Scala中的匿名函数内绑定值的语法糖?

如何解决《是否存在用于在Scala中的匿名函数内绑定值的语法糖?》经验,为你挑选了2个好方法。

而不是写作

((x: Double) => (((y: Double) => y*y))(x+x))(3)

我想写点类似的东西

((x: Double) => let y=x+x in y*y)(3)

在Scala中有类似的这种语法糖吗?



1> Daniel Spiew..:

确实存在:它被称为" val".:-)

({ x: Double =>
  val y = x + x
  y * y
})(3)

大括号当然是可选的,我只是在定义函数时更喜欢括号(毕竟,这不是Lisp).该val关键字定义当前词法范围内的新绑定.与Lisp和ML等语言不同,Scala不会强制本地人定义自己的范围.

实际上,它var也适用于任何范围,但它被认为是不好的使用方式.



2> Germán..:

好的,这是带有绑定的一个班轮:

 ({ x:Double => val y = x + x; y * y })(3)

干杯

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有