通过Dart Lang中的值获取变量名称

时间:2018-12-12 06:15:28

标签: dart dart-html

例如,我有一个像这样的变量。

var fooBar = 12;

我想要Dart lang中的类似内容。

print_var_name(fooBar);

打印:

fooBar

我该如何实现?这有可能吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

在Dart中,Web或Flutter都没有这种东西。
反射可以做到这一点,但是仅在服务器VM中支持反射,因为它会造成摇晃。

您需要为此手动编写代码,或在需要时使用代码生成。

示例

class SomeClass {
  String foo = 'abc';
  int bar = 12;

  dynamic operator [](String name) {
    switch(name) {
      case 'foo': return foo;
      case 'bar': return bar;
      default: throw 'no such property: "$name";
    }
  }
}

main() {
  var some = SomeClass();
  print(some['foo']);
  print(some['bar']); 
}