Scala(单例)对象与典型的类级工件有什么好处

Osc*_*Ryz 4 singleton scala

我理解使用对象的一个​​主要好处是,它们是真实对象而不是系统范围的功能.但最后这些对象也可以在系统范围内访问.

除了更"纯粹" scala"对象"提供的额外好处之外.

我打赌有一个数字,但我无法弄明白哪个.

Lan*_*dei 14

  • 对象是独立的实体,例如它们可以用作方法参数,隐式转换的目标和模式匹配中的案例对象......
  • 对象可以从类或特征继承
  • 一个对象有自己的类型
  • 对象可以限制其成员的访问权限,即使对于伴侣类也是如此:

.

object X {
  private[this] val z=1 
}

class X { 
  import X._ 
  //won't compile 
  println(z)
}
Run Code Online (Sandbox Code Playgroud)

  • "你能发布一个传递对象作为参数的样本吗?" 我猜你自己做了这件事而没有注意到它.例如,您可以在需要List时传递Nil(或者在需要选项时为None),并且Nil是一个对象.关于为什么对象不能从对象继承,我认为这不是一个技术问题,而是一个"哲学"问题:如果一个单身人士可以生孩子,他们是单身吗?我宁愿说,不,不是. (7认同)
  • @OscarRyz:您想要使用哪种访问修饰符?毕竟,这是Scala的普通"实例私有"修饰符.(有些人可能不知道,但是在类中使用`private [this]`也会使变量对其他实例不可见,而对于`private`,它仍然可以被姐妹实例访问.) (3认同)