簡體   English   中英

在Swift 3中,有沒有辦法在計算屬性內聲明常量?

[英]Is there a way to declare a constant inside a computed property in Swift 3?

我的Swift 3代碼中有幾個類似的屬性:

var dinActive: Bool {
    get { return UserDefaults.standard.bool (forKey: "bo", fallback: true) }
    set { UserDefaults.standard.set (newValue, forKey: "bo") }
}
var spdif1Active: Bool {
    get { return UserDefaults.standard.bool (forKey: "spdif1", fallback: true) }
    set { UserDefaults.standard.set (newValue, forKey: "spdif1") }
}

我想知道是否可以使它更緊湊。 例如,我要避免在getter和setter函數中都重復字符串文字,就像let s = "bo" 有可能嗎?

另外,我想知道是否可以將這種重復的模式制作成更短的代碼,就像可以使用類和泛型或使用C中的#define宏那樣。盡管如此,最好在單獨的問題中提出。 如果您對此有任何建議,但仍未得到答復,只需添加一條評論,我將提出一個新問題。

您可以在類之外為其創建一個let常量。 例如:

//declaring constant outside of class
let SPDif1Key: String = "spdif1"

class YourClass
{
    var dinActive: Bool {
        get { return UserDefaults.standard.bool (forKey: SPDif1Key, fallback: true) }
        set { UserDefaults.standard.set (newValue, forKey: SPDif1Key) }
    }
}

暫無
暫無

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

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