考慮下面的例子,是否有可能爲x
設置一個接受Int
的setter和另一個接受Double
?不同類型的屬性設置器
class Test(x: Float) {
var x: Float = x
get() {
return field
}
set(value) { // 'value' is of type 'Float'
field = value
}
}
原因:如果我要指定一個新值x
我總是要在f
後綴追加到每一個任務,即
var v = Test(12f)
v.x = 11 // error: 'The integer literal does not conform to the expected type Float'
v.x = 11.0 // error: 'The floating-point literal does not conform to the expected type Float'
v.x = 11f // ok
這是一件好事,可以防止錯誤發生,調用者不會意識到該屬性必須是浮動。你不應該改變任何代碼,除了使用double而不是float。 –