如何在Scala中创建只读类成员?

| 我想创建一个Scala类,其中的一个变量是该类外部的只读变量,但仍然是一个变量。我该怎么做? 如果它是val,则无需执行任何操作。默认情况下,该定义暗含公共访问权限和只读权限。     
已邀请:
        将公共“ getter”定义为私有“ 0”。
scala> class Foo {
     |   private var _bar = 0
     |
     |   def incBar() { 
     |     _bar += 1 
     |   }
     |
     |   def bar = _bar
     | }
defined class Foo

scala> val foo = new Foo
foo: Foo = Foo@1ff83a9

scala> foo.bar
res0: Int = 0

scala> foo.incBar()

scala> foo.bar
res2: Int = 1

scala> foo.bar = 4
<console>:7: error: value bar_= is not a member of Foo
       foo.bar = 4
           ^
    
        用“ getter”方法定义特征:   特质Foo {   def bar:T   } 定义一个扩展此特征的类,该类具有您的变量   私有类FooImpl(var bar:T)扩展了Foo 适当限制此类的可见性。 拥有专用接口还可以让您在运行时使用多个实现类,例如以更有效地涵盖特殊情况,延迟加载等。     

要回复问题请先登录注册