1
我們如何在Swift中檢查一個泛型類型是從其他類型繼承的?如何檢查一個泛型是否是Swift中其他泛型類型的子類?
我有這樣的代碼:
class Style<U: Styleable> {
...
init<V: Styleable>(_ style: Style<V>) {
...
}
}
我需要確保這裏面初始化它,只有當U
是V
子類可以被調用。我不知道有什麼方法可以在編譯時檢查它 - Swift不允許(但也許?)將一個泛型限制爲其他類的子類。所以我唯一能做的就是使用一些斷言,這樣程序在錯誤使用時會崩潰。
你有什麼建議如何解決這個問題?
@MartinR:我舉了一個錯誤的例子。我試圖解決的真正問題有點困難。請檢查編輯的問題。 –