person.name // => "Chad"
var attr = "name";
person.send(attr); // => Ruby style, throws error
person[attr]; // => ECMAScript style, throws error
如何在Dart中做到这一点?
此外,这个想法/模式叫什么?动态吸气?数据驱动的吸气剂?对象的变量消息/属性?
答案 0 :(得分:1)
要在Dart中动态访问属性,您需要通过镜像系统。
import "dart:mirrors";
...
print(person.name); // Chad
var name = reflect(person).getField(#name).reflectee;
print(name); // Chad
var attr = "name";
name = reflect(person).getField(new Symbol(attr)).reflectee;
print(name); // Chad