Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) 形如abc_=的函数,有什么用?

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

class A {

<span class="kwrd">private</span> var _a = <span class="str">""</span>
def a = _a
def a_=(newValue:String) { _a = newValue }

}```

其中的a=函数,是方便我们赋值,见下例:

val a = new A

a.a // -> ““
a.a = “x” // invoke a
=
a.a // -> “x”

<p>如果不是需要在赋值或取值的时候需要做一些转换的操作,一般没有必要这样做。事实上,scala已经把所有的属性隐藏起来了。

例如:
<pre class="csharpcode"><span class="kwrd">class</span> A{
    var id: Int = _
}```
<p>看上去我们定义了一个公开的属性id,实际上属性id是被隐藏起来的(private可见),这里只是定义了两个方法
<pre class="csharpcode">def id : Int
def id_=(v: Int)```
comments powered by Disqus