我有一个List<String>
的Dart函数名称。例如,['func1', 'func2', 'func3']
。我想调用List
中的每个函数。如何从String
转到Function
?以下代码不起作用,但从概念上讲,它可以满足我的要求:
var func1 = Function('func1');
查看如何从Function
创建'func1'
。
编辑:我需要处理String
,因为我从文件中读取了功能列表。
答案 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();
}