我是否需要将单个对象的成员导入Scala中的伴随类?

lin*_*lof 17 singleton scala

好书指出:

类及其伴随对象可以访问彼此的私有成员.

也许是天真的,我认为这意味着一个类不需要从其伴随对象中显式地导入成员.即,以下将起作用:

object Foo {
  def bar = 4
 }

class Foo {
 def foo = bar
}
Run Code Online (Sandbox Code Playgroud)

那么,你读这个的原因是它没有.所以我真的需要声明这样的东西:

class Foo {
  import Foo._

  def foo = bar
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ral 17

是的,就像你说的那样.有访问权限,并且有范围 - 伴侣类/对象具有访问权限,而不是范围.

这就像声明公共与私有一样 - 它不会将这些成员带入每个人的范围,只是让他们访问它.

  • 有关_why_的进一步讨论,请参阅http://stackoverflow.com/q/23704769/86485 (2认同)