JavaScript с PHP MySQLi

Добавление некоторого синтаксического сахара в ответ Бензи:

protocol PropertyReflectable { }

extension PropertyReflectable {
    subscript(key: String) -> Any? {
        let m = Mirror(reflecting: self)
        return m.children.first { $0.label == key }?.value
    }
}

struct Person {
    let name: String
    let age: Int
}

extension Person : PropertyReflectable {}

Затем создайте Person и получите доступ к его свойствам.

let p = Person(name: "John Doe", age: 18)

p["name"] // gives "John Doe"
p["age"] // gives 18
0
задан Apromer 25 February 2015 в 10:29
поделиться