私はパッケージcom.example
を持っている場合、私はこのようにそのパッケージ内のクラスを作成することができます。クラスの宣言とパッケージオブジェクトの宣言の間には実質的な違いはありますか?
package com.example {
class MyClass
}
またはこのような:どちらの場合も
package com {
package object example {
class MyClass
}
}
、結果のクラスは限り(あります他のScalaコードについては、少なくともcom.example.MyClass
です)。
確かに偶然の違いがあります。最初の例では、コンパイルされたクラスはcom/example/MyClass.class
ですが、2番目のクラスはcom/example/package$MyClass.class
ですが、実際の違いはありますか?私は考えることができる
そのため、完全性のために、「実質的な差異はありますか?」という質問に対する答えは「いいえ」ですか? 2.10で偶然の違いが消えてしまいますか?ありがとう! –
正しい。パッケージオブジェクトはさらに進化するかもしれない機能です:ここで何が来るかを見てください:http://www.scala-lang.org/docu/files/packageobjects/ packageobjects.html – retronym