我想知道爲什麼我不能使用同一個名稱作爲函數參數和類中使用的名稱。請參考下面的例子。Scala類變量名稱隱藏方法參數名稱
scala> class Person() {var name = "bob" }
defined class Person
scala> val p = new Person
p: Person = [email protected]
scala> p.name
res0: java.lang.String = bob
scala> p.name = "alice"
scala> p.name
res1: java.lang.String = alice
scala> def chngName(name:String) = new Person() {this.name= name}
chngName: (name: String)Person
scala> val p = chngName("aa")
p: Person = [email protected]
scala> p.name
res2: java.lang.String = bob
scala> def chngName(n:String) = new Person() {name= n}
chngName: (n: String)Person
scala> val p = chngName("aa")
p: Person = [email protected]
scala> p.name
res3: java.lang.String = aa
當然,我可以使用一個不同的名字,但我想爲什麼我不能或有我在這裏錯過的東西。謝謝
在你的榜樣,你可以只定義'類Person(VAR名稱:字符串=「鮑勃」)',然後寫'新Person'獲得鮑勃,或'新人(「aa」)爲自定義名稱。 –