Tworzę strukturę jednostek w Swift, która ma nadklasę i podklasy pomiarowe dla różnych jednostek, takich jak masa i objętość. Cechą jest umożliwienie ramie prawidłowego odgadnięcia, z której jednostki jest tworzona i zwrócenia poprawnej klasy. przykładowy kod:Czy inicjalizator dla nadklasy zwraca konkretną podklasę?
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
Czy jest możliwe, aby dziedziczona klasa tworzyła obiekt określonej podklasy podczas jej inicjowania?
Biblioteka nazywa Indus Valley i open source na GitHub
Jest to z pewnością denerwujące ograniczenie Swift 'nie init' powrocie wartość. – pkamb