那麼你如何在Swift中定義泛型類常量?如何在swift中定義泛型類中的靜態常量?
問題
對於一個 「正常」 類,你可以這樣定義他們:
class C {
static let k = 1
}
let a = C.k // 1
但如果你做同樣的一個泛型類:
class C<T> {
static let k = 1
}
你彙編時出現以下錯誤:
不是個靜態存儲性能又支持泛型類型
那麼如何解決這個問題?
我目前的解決方案
現在,我使用struct
來解決這個問題:
struct CConstant {
static let K = 1
}
這不是泛型類的範圍定義,但它爲我工作。 你有更好的解決方案嗎?
-
PS:這是我在這裏的第一個問題,所以請幫助我改進這個問題,如果你認爲有必要=)
感謝您的回答!你的建議似乎與我目前的解決方案是一致的。我只需要根據上下文來指定訪問器。 你確切地知道爲什麼'靜態存儲屬性尚未支持泛型類型? – ghashi
我認爲它們還沒有被支持,因爲你不能使用泛型類型而不指定它的類型參數。如果你只想訪問靜態屬性,那麼'SomeClass .someConstant'看起來會很難看。爲了在不指定類型參數的情況下工作,需要在編譯器中實現,我認爲這不是Swift團隊的首要任務。 –
mixel