【发布时间】:2021-08-30 12:59:20
【问题描述】:
我有一个例子,works in dart before null safety 不在upgrading to Null safety 之后。我不知道发生了什么。
它给了我错误 “动态函数()?”类型的值无法从方法“doSomething”返回,因为它的返回类型为“动态函数()”
但我没有将任何东西定义为 Nullable。
typedef RandomFunction = Function();
class RegisteredFunctions {
Map<String, RandomFunction> types = {};
static final RegisteredFunctions _registry = RegisteredFunctions._init();
RegisteredFunctions._init() {}
factory RegisteredFunctions() {
return _registry;
}
void registerFunction(String name, RandomFunction func) {
types[name] = func;
}
RandomFunction doSomething(String id) => types[id]; //<---- gives error
}
void doStuff(){
print('Doing Something');
}
void main() {
RegisteredFunctions functions = RegisteredFunctions();
functions.registerFunction('func1', doStuff);
functions.doSomething('func1')();
}
【问题讨论】:
-
我想通了.. 使用后缀将地图转换为不可为空!修复。 (即:类型[id]!)
标签: dart