В Scala вы можете определить объекты пакета. Таким образом, вы можете получить доступ к этому объекту пакета, записав имя пакета, а затем `package`
:
// file package.scala in src/com
package com
package object test {
val Version = 2
}
// file Test.scala in src/test
package test
object Test {
def main(args: Array[String]) {
val p = com.test.`package` // get ref on package object
val v1 = com.test.`package`.Version // (1) get val
val v2 = com.test.Version // (2) get val
}
}
В чем разница между (1) и (2)? В некоторых случаях мне приходилось писать дополнительные `package`
для запуска моего кода. Должна ли быть разница или это ошибка компилятора?
Кроме того, что, например, эта линия означает, что в Predef.scala
?
scala.`package` // to force scala package object to be seen.