如果我有一个包com.example
,我可以在这个包中创建一个类:
package com.example {
class MyClass
}
或者像这样:
package com {
package object example {
class MyClass
}
}
在这两种情况下,结果类(至少与其他Scala代码有关)com.example.MyClass
。
肯定存在偶然的差异。在第一个实例中,得到的编译类是com/example/MyClass.class
,而在第二个实例中它是com/example/package$MyClass.class
但是有任何实质性差异吗?
答案 0 :(得分:5)
scala-internals讨论了生成的类文件名的差异,希望在Scala 2.10中消失。
答案 1 :(得分:0)
我能想到的唯一原因是,而不是只能在{em>包中放置class
es,object
或type
s,您可以将def
,val
和var
放入对象。