传递 属性 类型作为参数
Passing property type as parameter
有没有办法将 属性 作为参数传递给函数?
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)
闭包会有帮助吗?
您可以使用键值编码:
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")
我不确定这是你想要的,但使用闭包:
func f1<T>(car: Car, getter: Car -> T) {
println(getter(car))
}
let c1 = Car()
f1(c1, {[=10=].doors})
f1(c1, {[=10=].price})
有没有办法将 属性 作为参数传递给函数?
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)
闭包会有帮助吗?
您可以使用键值编码:
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")
我不确定这是你想要的,但使用闭包:
func f1<T>(car: Car, getter: Car -> T) {
println(getter(car))
}
let c1 = Car()
f1(c1, {[=10=].doors})
f1(c1, {[=10=].price})