[英]A value of type 'bool?' can't be assigned to a variable of type 'bool'
[英]Dart - A value of type 'bool' can't be assigned to a variable of type '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
上使用泛型類型,因此當在testFunction()
中將其設置為 bool 時,編譯器會感到困惑。 您可以在這里做的是將數據類型更改為泛型,然后在設置為cassTwoInstance.fieldOne
時將arg
轉換為 bool
這是您可以在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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.