dart - 如何从字符串创建 Dart 函数?
问题描述
我有一个List<String>
Dart 函数名称。例如,['func1', 'func2', 'func3']
。我想调用List
. 我怎样才能从 aString
转到 a Function
?以下代码不起作用,但从概念上讲它可以满足我的要求:
var func1 = Function('func1');
看看它是如何创建一个Function
from 的'func1'
。
编辑:我需要处理String
s 因为我从文件中读取函数列表。
解决方案
我认为 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();
}
推荐阅读
- javascript - 如何将 json 文件的全部内容转储到 div 中?
- python - 如何从 flask_sqlalchemy 应用程序执行存储过程
- azure - 如何在远程 Azure VM 上执行 Powershell 命令/脚本?
- excel - 动态条件格式(索引、匹配)
- android - 在 RecyclerView 中预取文本布局,无法解析方法 setTextFuture
- python - sqlite 如果存在则更新,否则在 python 中插入
- android - 比较 Firebase Auth 和 Firebase Object 中的属性
- php - 在 Woocommerce Checkout 上删除某个国家/地区的特定州
- node.js - /token 请求中的 404 响应
- azure - Azure 自动化在返回 400 错误的混合工作人员上调用内部应用程序 Rest API