我知道=>
在 Scala 中用于函数文字,意思是“将左边的东西转换为右边的东西”。但是这个符号实际上叫什么?等于,暗示,lambda?什么?
4 回答
我记得在某处读过“火箭”这个词,可能是在Dean Wampler 和 Alex Payne所著的Programming Scala中。我在论坛上找到了 Bill Venners 的相关答案:
不久前我问马丁奥德斯基他怎么称呼它,他说“右箭头”。几个月前,Ron Hitchens 向我建议了“子弹”这个名字。我在这里和那里使用过,但它似乎并没有坚持下去。大约 2 周前,我问了一些 Ruby 人他们怎么称呼它,他们说“哈希火箭”。“hash”的原因是 Ruby 使用它来将键映射到值,即 Ruby 中的“key => value”就像 Scala 中的“key -> value”(但在 Ruby 中没有类型),当然 -> 在 Scala 中是一个库抽象,而不是语言的一部分。
所以我建议我们称之为“火箭”。它比子弹更刺激,更不暴力,我们可以在其中放置一个形容词来区分 Scala 中的各种用途:匿名函数中有“函数火箭”,匹配表达式或偏函数中的 case 子句中可能有“案例火箭” , ETC。
所以奥德斯基使用的“官方”术语是“右箭头”。
也通常称为“胖箭”
更新:哦,我刚刚注意到 Paolo Falabella 在上面的评论中提到了它。无论如何,在这里有一个正确的答案也一样好,因为“胖箭头”确实是一个非常常见的名称。
在 Scala 文档(Java 程序员的 Scala 教程)中,它被称为right arrow
在Programming in Scala
Martin Odersky、Lex Spoon、Bill Venners 的书中,它被称为右箭头或Rcket
=>(右箭头,或“火箭”)
在函数字面量中,68
在导入语句中,270–271
在自我类型中,563
在比赛替代品中,164
在这个混叠中,659