有没有办法将属性作为参数传递给函数?
class Car {
let doors : Int = 4
let price : Int = 1000
}
有没有办法将Car属性作为类型传递给函数?
我想实现以下目标:
func f1(car: Car, property: SomeType) {
println(car.property)
}
let c1 = Car()
f1(c1, doors)
f1(c1, price)
关闭会有帮助,如果是这样的话?
答案 0 :(得分:7)
我不确定这是你想要的,但使用闭包:
func f1<T>(car: Car, getter: Car -> T) {
println(getter(car))
}
let c1 = Car()
f1(c1, {$0.doors})
f1(c1, {$0.price})
答案 1 :(得分:3)
您可以使用键值编码:
class Car : NSObject {
let doors : Int = 4
let price : Int = 1000
}
然后您的f1
功能可能是:
func f1(car: Car, property: String) {
println(car.valueForKey(property))
}
你可以这样称呼它:
f1(car, property: "doors")
f1(car, property: "price")