[英]Accepting enums of multiple types in functions
enum CompassPoint: String, Printable {
case North = "North"
case South = "South"
case East = "East"
case West = "West"
var description: String {
get {
return self.rawValue
}
}
}
enum Cars: String, Printable {
case Audi = "Audi"
case Lexus = "Lexus"
case Volkswagen = "Volkwagen"
case Jaguar = "Jaguar"
var description: String {
get {
return self.rawValue
}
}
}
func someFunction(direction: CompassPoint) {
println("\(direction)")
}
someFunction(.North) // prints out "North"
someFunction(.Audi) // error(CompassPoint.Type does not have member named 'Audi')
我正在嘗試在Swift中創建一個函數,它接受兩種類型的枚舉,也可能在未來的其他類型。 有誰知道如何創建一個接受所有枚舉的函數?
如何使someFunction的參數類型為Printable? 像這樣:
func someFunction(typeToPrint: Printable) {
println("\(typeToPrint)")
}
someFunction(CompassPoint.North)
someFunction(Cars.Audi)
您可以通過創建另一個包含所有其他枚舉的枚舉來像這樣使用它
enum CompassPoint: String, Printable {
case North = "North"
case South = "South"
case East = "East"
case West = "West"
var description: String {
get {
return self.rawValue
}
}
}
enum Cars: String, Printable {
case Audi = "Audi"
case Lexus = "Lexus"
case Volkswagen = "Volkwagen"
case Jaguar = "Jaguar"
var description: String {
get {
return self.rawValue
}
}
}
enum combined
{
case comp(CompassPoint)
case car(Cars)
}
func someFunction(direction: combined) {
println("\(direction)")
}
someFunction(combined.comp(.North))// prints out "North"
someFunction(combined.car(.Audi))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.