如何从字符串创建Dart函数?

时间:2018-12-31 17:42:53

标签: dart

我有一个List<String>的Dart函数名称。例如,['func1', 'func2', 'func3']。我想调用List中的每个函数。如何从String转到Function?以下代码不起作用,但从概念上讲,它可以满足我的要求:

var func1 = Function('func1');

查看如何从Function创建'func1'

编辑:我需要处理String,因为我从文件中读取了功能列表。

1 个答案:

答案 0 :(得分:1)

我不认为Dart目前允许这样做(对于可以使用dart:mirrors的对象,但目前它被标记为不稳定的库)。

一种替代方法是使用Map来将字符串与函数相关联,例如:

void foo() {
  print('foo');
}

void bar() {
  print('bar');
}

void main() {

  var functions = {
    'foo': foo,
    'bar': bar
  };

  // calling foo()
  functions['foo']();

  // or
  var b = functions['bar'];
  b();

}