Ruby style, throws error person-6ren">
gpt4 book ai didi

design-patterns - 动态访问对象方法

转载 作者:行者123 更新时间:2023-12-03 04:07:02 26 4
gpt4 key购买 nike

person.name // => "Chad"
var attr = "name";
person.send(attr); // => Ruby style, throws error
person[attr]; // => ECMAScript style, throws error

在Dart中如何做到这一点?

另外,这个想法/模式叫什么?动态 setter/getter ?数据驱动的 setter/getter ?可变消息/对象属性?

最佳答案

为了动态访问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

参见 https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors.InstanceMirror#id_getField

关于design-patterns - 动态访问对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com