否目標C是必需的,需要的或需要的。儘可能以最簡單的方式,您可以像這樣創建Country
陣列,具體取決於它們是需要只讀還是讀寫。
class Country {}
class USA: Country {}
class China: Country {}
class France: Country {}
var countries = [Country]()
countries.append(USA())
countries.append(China())
countries.append(France())
let moreCountries = [France(), China(), USA()]
但是,爲每個可能的國家創建單獨的子類型是在面值時濫用類型系統。這是另一種更習慣的方式。但這是一個設計問題,取決於未提供的細節。
class Country {
let name: String
}
var countries = [Country]()
countries.append(Country(name: "USA"))
countries.append(Country(name: "China"))
countries.append(Country(name: "France"))
let moreCountries = [Country(name: "France"), Country(name: "China"), Country(name: "USA"))
let usa = Country(name: "USA")
let china = Country(name: "China")
let france = Country(name: "France")
let evenMoreCountries = [china, france, usa]
超類不知道任何關於它的子類。您需要顯式創建每個子類的實例並將其添加到數組 – Paulw11