我在Swift中創建了一個單元框架,它具有用於不同單元(如質量和體積)的度量超類和子類。一個特性是允許框架正確地猜測它創建的單元並返回正確的類。示例代碼:使超類的初始化器返回一個特定的子類?
class Measurement {
var unitString : String
init(unknownUnit: String) {
// checks if the unit is either Volume or Mass, and returns an instance of that class
}
}
class Volume : Measurement {
init(unitString: String) {
}
}
class Mass : Measurement {
init(unitString: String) {
}
}
let mass = Mass("kg") // class: Mass
let volume = Volume("ml") // class: Volume
let shouldBeVolume = Measurement("ml") // class: Volume
let shouldBeMass = Measurement("kg") // class: Mass
是否有可能有初始化時,它繼承的類創建一個特定的子類的對象?
圖書館被命名爲Indus Valley和開放源代碼在GitHub上
這絕對是斯威夫特的一個惱人的限制'init'沒有返回值。 – pkamb