簡體   English   中英

Swift中的Getter和Setters

[英]Getters and Setters in Swift

為什么在以下Swift的特殊情況下我們需要使用setter。

我正在嘗試將'display.text' String轉換為Double 我知道getter會帶回String值並將其轉換為Double並將此值分配給變量newValue

問題:如果我們只是將display.text值轉換為Double為什么還要使用= "\\(newValue)"將其重新設置為String呢?

var doubleValue: Double {
    get {
        return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
    }
    set {
        display.text = "\(newValue)"
    }
}

我知道getter會帶回String值並將其轉換為Double並將此值分配給變量newValue。

這是不對的。 吸氣劑僅返回雙精度值。 吸氣劑中沒有newValue

在setter中, newValue是“ setter的隱式參數”的快捷方式。 顯式語法是這樣的:

var doubleValue: Double {
    ...
    set(newValue) {
        display.text = "\(newValue)"
    }
}

為了覆蓋swift變量的setter和getter,請使用以下給定的代碼

var temX : Int? 
var x: Int?{

set(newX){

   temX = newX

}

get{

    return temX

}

我們需要將變量的值保留在一個臨時變量中,因為嘗試訪問被getter / setter覆蓋的同一變量將導致無限循環。

我們可以像這樣簡單地調用設置器

x = 10

在給定的代碼行以下觸發時將調用Getter

var newVar = x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM