我是scala的新手,对此有点困惑。我使用IntelliJ Idea。我知道Scala允许使用特殊字符作为方法。在IntelliJ Idea中,按住Command键并单击方法,或按Ctrl键并单击将您移至定义方法的位置。但是,在Scala中,当我在for循环中单击<-
时,它会移动到:
def foreach[U](f: Char => U): Unit = { ... }
尽管问题是关于此特定运算符的,但我想知道如何找到已定义的其他运算符,以及为什么IntelliJ跳转到foreach
语句?
答案 0 :(得分:5)
for
的理解也在Scala Language Specification中定义。更具体地说,在Section 6.19 For Comprehensions and For Loops中。
尤其是,左箭头<-
(也可以写为←
)是用于定义 generator 的语法:
生成器
? ← ?
从表达式?
生成绑定,该表达式以某种方式与模式?
匹配。
答案 1 :(得分:1)
在<-
或java.lang.String
类中没有scala.collection.immutable.StringOps
方法。正如intellij所指出的,它只是foreach
调用的语法糖。