我在看别人的源代码(Scala),我看到在IndexedSeq:+=类型的变量上调用运算符.我正在查看该类的scaladocs页面以找出该运算符的作用,但我没有看到它.我想它要么在继承层次结构之外的类中定义,要么scaladocs页面上的javascript隐藏在某个我无法看到它的地方.(实际上它既不是;见下面的答案.)IndexedSeq
我点击scaladocs页面上的每个按钮试图取消隐藏所有内容.我查看了网页的HTML代码.必须有一种方法可以从可以应用它的类的文档中查找运算符.不是吗?
(注意:我使用symbolhound查找了该运算符,所以我知道该运算符现在意味着什么.这个问题一般是关于scala文档,而不是那个特定的运算符.)
Scala中的所有运算符都是常规方法.
您无法找到它,因为它是重新分配的编译器魔法,它不是运算符.或者换句话说:它看起来像是一个自己的运算符,但实际上它是"一个运算符后跟=字符".
如果运算符(此处:+)返回正确的类型,并且原始值var显然为a ,则编译器会将其神奇地转换为赋值.
由于它不是由任何隐式或显式方法提供的Seq[T],因此它不会出现在生成的scaladoc中的任何位置.
所以回答一般问题:
"<?>="某个地方找到了一些未知的运算符,那么找"<?>"一个肯定会记录的定义.编辑:我终于找到了SLS中定义的位置:
§6.12.4:
赋值运算符是一个运算符符号((§1.1)中的语法类别op),以等号"="结尾,但运算符除外,其中包含下列条件之一:
(1)运算符也以等号开头,或者
(2)运算符是(<=),(> =),(!=)之一.
它后来也说它只会在所有其他选项都被尝试时发生(包括潜在的暗示).
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |