flutter - Dart - “bool”类型的值不能分配给“bool”类型的变量
问题描述
将以下内容粘贴到dartPad.dev中会导致分配错误classtwoInstance.fieldOne = arg;
错误:“bool”类型的值不能分配给“bool”类型的变量
转换为 bool 也会给出“不必要的转换”消息
如何将 bool 参数arg分配给 fieldOne?
class ClassOne {
Function<T>(T) setFunction;
ClassOne({this.setFunction});
}
class ClassTwo {
bool fieldOne;
}
testFunction<T>(T value){
ClassTwo classtwoInstance = ClassTwo();
ClassOne classOneInstance = ClassOne(setFunction: <bool>(bool arg) {
classtwoInstance.fieldOne = arg; // Error A value of type 'bool' can't be assigned to a variable of type 'bool'
return null;
});
return classOneInstance;
}
void main() {
ClassOne classWithFunction = testFunction<bool>(true);
classWithFunction.setFunction(true);
}
解决方案
由于您在 上使用泛型类型Function<T>(T) setFunction
,因此编译器在将其设置为 bool in 时会感到困惑testFunction()
。您可以在这里做的是将数据类型更改为泛型,然后arg
在设置为时使用 bool 进行转换cassTwoInstance.fieldOne
这是您可以在dartpad.dev上尝试的更新代码
class ClassOne {
Function<T>(T) setFunction;
ClassOne({required this.setFunction});
}
class ClassTwo {
bool? fieldOne;
}
testFunction<T>(T value) {
ClassTwo cassTwoInstance = ClassTwo();
ClassOne classOneInstance = ClassOne(setFunction: <T>(T arg) {
cassTwoInstance.fieldOne = arg as bool;
print('ClassTwo fieldOne: ${cassTwoInstance.fieldOne}');
return null;
});
return classOneInstance;
}
void main() {
ClassOne classWithFunction = testFunction<bool>(false);
classWithFunction.setFunction(false);
}
推荐阅读
- python-3.x - 我使用 sklearn 进行语言识别的数据集有问题吗?
- html - 如何在可滚动div的顶部和底部获得褪色阴影,或者隐藏在它们各自的末端
- python - 使用rest api在谷歌驱动器中创建新文件夹
- html - 如何更改网站不同位置的背景颜色?
- java - Java如何仅更改字段分隔符而不更改实际数据
- sed - 删除“.200.300”。从字符串
- elasticsearch - 在添加到 ES 时 JSON 数组的 mapper_parsing_exception 错误
- erlang - 如何处理 odbc:start() 的返回值。erlang中的函数?
- javascript - 带有显示的选择下的唯一选项:无样式不会在 windows 的 Firefox 中显示下拉菜单
- powershell - 如何在PowerShell中正确访问REST API v2.0进行邮箱管理