soc*_*soc 10 java programming-languages scala runtime reference
scala.runtime目录中的Scala源代码树中有一些*.java文件.
这些文件似乎很简单,例如DoubleRef.java看起来像这样:
package scala.runtime;
public class DoubleRef implements java.io.Serializable {
private static final long serialVersionUID = 8304402127373655534L;
public double elem;
public DoubleRef(double elem) { this.elem = elem; }
public String toString() { return java.lang.Double.toString(elem); }
}
Run Code Online (Sandbox Code Playgroud)
是否有任何理由不能在Scala中定义这些类?
也是一个猜测:没有Scala构造编译成公共字段 - varScala中的公共编译到私有字段和公共访问器和mutator.我认为这些*Ref类被广泛使用,这可能是一种优化,以避免频繁的方法调用,并用直接字段访问替换它们.