2016-11-30 71 views
0
class Car(val miles:Int,val year:Int) 

val myCar = new Car(100,2016); 
println(myCar.miles) 

在此示例中myCar.miles爲我提供了英里的值。但是我想定義明確的getter來處理myCar的miles屬性。這個怎麼做?Scala中的顯式吸氣器

回答

4

定義一個方法:

class Car(mi: Int, val year: Int) { 
    def miles = 2 * mi 
} 

val myCar = new Car(100, 2016) 
println(myCar.miles) // prints 200 

或者,因爲價值是不可變的,定義一個val,這樣計算是隻進行一次(而不是每次調用該方法時):

class Car(mi: Int, val year: Int) { 
    val miles = 2 * mi 
} 
+0

據我瞭解,不需要爲mi val進行重寫?但是這可以完成嗎? – Pavel

+1

'mi'只是一個構造函數的參數,通過不在前面放置'val',你不會得到自動提供的getter和setter。 – Jesper

+0

我的意思是,這將無法在純FP方面有效,但如果這在Scala中允許?因爲我看不到它。 – Pavel