2

我想知道是否有像在 javascript中那样在 dart 中按名称调用函数。

我想做这样的事情:

foo["bar"]();
4

1 回答 1

5

我不希望读者认为提问者想要的东西在 Dart 中是不可能的,所以我添加了一个答案。

如果您将其名称作为字符串提供,则需要使用 Mirrors 来调用方法。这是一个例子:

import 'dart:mirrors';

class Foo {
  bar() => "bar";
}

void main() {
  var foo = new Foo();

  var mirror = reflect(foo);
  print(mirror.invoke(#bar, []).reflectee); // Prints 'bar'.
}
于 2013-12-28T20:04:09.140 回答