在foo/bar/my_package/package.scala
:Scala包的分解 - 一種方式導致包對象可見,另一種使它不可用?
package foo.bar
package object my_package {
type SomeType = java.lang.String
}
然後,在foo/bar/my_package/my_sub/MyClass.scala
package foo.bar.my_package.my_sub
class MyClass {
var x: SomeType = _
}
這編譯失敗;找不到SomeType
。如果我將MyClass.scala
更改爲
package foo.bar.my_package
package my_sub
class MyClass {
var x: SomeType = _
}
一切正常。有什麼不同!?!??!
(這是斯卡拉2.8.1)
請注意,在我的第二個示例中,我沒有使用大括號包裝的東西;這只是暗示? – davetron5000 2011-04-22 13:39:00
@ davetron5000這並不是暗示,對於同樣的事物,它只是兩種不同的語法。 Rex使用花括號來說明'my_sub'在'foo.bar.my_package'裏面。然而,重要的一點是'package'聲明在這一點上導入了所有的東西。 – 2011-04-22 16:42:21
編輯答案,以明確。如果沒有人對我的編輯有任何問題,我會選擇這個作爲「正確答案」。 – davetron5000 2011-04-25 17:02:00