Scala的所有符号运算符是什么意思?

Scala语法有很多符号。由于使用搜索引擎很难找到这类名称,因此将其完整列出会很有帮助。

Scala中的所有符号都是什么,它们每个都做什么?

我特别想知道->||=++=<=_._::,和:+=


弑天下
浏览 713回答 3
3回答

慕码人2483693

您可以根据某些条件先将它们分组。在本文中,我将仅说明下划线字符和右箭头。_._包含句点。Scala中的句点始终表示方法调用。因此,在句号的左边有接收方,在消息的右边(方法名)。现在_是Scala中的特殊符号。关于它有几篇文章,例如此博客条目所有用例。在这里,这是一个匿名函数的捷径,这是一个接受一个参数并_在其上调用方法的函数的快捷方式。现在_不是有效的方法,因此很可能您已经看到_._1或类似的东西,即_._1在函数参数上调用方法。_1to _22是提取元组特定元素的元组方法。例:val tup = ("Hallo", 33)tup._1 // extracts "Hallo"tup._2 // extracts 33现在,假设函数应用程序快捷方式的用例。给定一个将整数映射到字符串的映射:val coll = Map(1 -> "Eins", 2 -> "Zwei", 3 -> "Drei")糟糕,标点符号已经再次出现。连字符和大于号字符(类似于右箭头)是产生的运算符Tuple2。因此,无论编写(1, "Eins")或的结果都没有区别1 -> "Eins",只是后者更易于阅读,尤其是在像地图示例这样的元组列表中。该->是什么神奇的,它是像其他一些运营商,可因为你把所有的隐式转换的对象scala.Predef范围。这里发生的转换是implicit def any2ArrowAssoc [A] (x: A): ArrowAssoc[A]&nbsp;哪里ArrowAssoc有->创建的方法Tuple2。因此1 -> "Eins"是实际的呼叫Predef.any2ArrowAssoc(1).->("Eins")。好。现在回到带有下划线字符的原始问题:// lets create a sequence from the map by returning the// values in reverse.coll.map(_._2.reverse) // yields List(sniE, iewZ, ierD)这里的下划线缩短了以下等效代码:coll.map(tup => tup._2.reverse)请注意,mapMap 的方法将键和值的元组传递给函数参数。因为我们只对值(字符串)感兴趣,所以我们使用_2元组上的方法提取它们。
打开App,查看更多内容
随时随地看视频慕课网APP