簡體   English   中英

Dart - “bool”類型的值不能分配給“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM