什么是=>在Scala中调用?

时间:2013-01-02 21:11:49

标签: scala

我知道Scala中的=>用于函数文字,意思是“将左边的东西转换为右边的东西”。但实际上所谓的符号是什么?等于,暗示,lambda?什么?

4 个答案:

答案 0 :(得分:17)

我记得在某处读过“火箭”一词,可能是在Dean Wampler和Alex Payne的书Programming Scala中。我找到了this related answer from Bill Venners on a forum

  一段时间我问马丁奥德斯基他说的是什么,他说“右箭头”。几个月前,Ron Hitchens向我提出了“子弹”这个名字。我在这里和那里使用它,但它似乎没有坚持。大约2个星期前,我问了一些Ruby家伙他们称之为什么,他们说“哈希火箭”。 “哈希”的原因是Ruby使用它将键映射到值,即Ruby中的“key => value”就像Scala中的“key - > value”(但在Ruby中没有类型),当然 - &gt ;在Scala中是一个库抽象,而不是语言的一部分。

     

所以我建议把它称为“火箭”。它比子弹更刺激,更暴力,我们可以在其中放置一个形容词来区分Scala中的各种用法:匿名函数中有“函数火箭”,也可能是匹配表达式或部分函数中的case子句中的“case rocket”等等。

所以Odersky使用的“官方”术语是“右箭头”

答案 1 :(得分:10)

通常也称为“胖箭”

更新:哦,我刚刚注意到Paolo Falabella在上面的评论中提到了它。无论如何,在这里得到一个正确的答案也是如此,因为“胖箭”是一个非常普遍的名字。

答案 2 :(得分:6)

在scala文档(A Scala Tutorial for Java Programmers)中,它被称为right arrow

答案 3 :(得分:0)

在马丁·奥德斯基(Martin Odersky),Lex Spoon,比尔·文纳斯(Bill Venners)的《 Programming in Scala书中》中,它被称为右箭头机架

=>(向右箭头或“火箭”)

  • 在函数文字中,68

  • 在导入语句中,270–271

  • 自我类型为563

  • 在比赛替代项中,164

  • 在这个别名中,659