[英]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.