首页 > 解决方案 > 如何从字符串创建 Dart 函数?

问题描述

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

var func1 = Function('func1');

看看它是如何创建一个Functionfrom 的'func1'

编辑:我需要处理Strings 因为我从文件中读取函数列表。

标签: dart

解决方案


我认为 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();

}

推荐阅读