在函数中接受多种类型的枚举
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 的参数类型可打印?像这样:
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))
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 的参数类型可打印?像这样:
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))