簡體   English   中英

dart 中的條件運算符 (??) 問題

[英]Conditional Operators (??) issues in dart

void main() {
  print("Conditional Operators:");
  // small if else
  var a1 = 100;
  var b2 = 20;
  var istrue = (a1 < b2) ? 'True' : 'False';
  print(istrue);

  // check if null or print name
  var name1;
  var check = name1 ?? "This is Null";
  print(check);

  var name = "Abdulelah";
  var checknot = name ?? "This is Null";
  print(name);
}

我不知道如何在第 16 行黃色錯誤中解決此問題:

左操作數不能是 null,所以永遠不會執行右操作數。 嘗試刪除運算符和正確的操作數.dartdead_null_aware_expression

變量“name”不會是 NULL 因為你給他的值是“Abdulelah”,所以正確的部分?? "This is NULL" ?? "This is NULL"不會被執行,刪除右邊的部分,警告就會消失。

使用?? 我們在 null 案例中提供默認值。

a = x ?? y

上面的例子表明,如果x返回/變成 null, y將在a上被初始化。 事實就變成了。

  • 如果x不是null ,則a = x
  • 如果xnull ,那么a = y

我們不使用if, else而是使用?? 提供 null 處理程序值。

編輯器在這里表現得很聰明,因為它知道name不是 null,所以黃色消息說您不需要提供默認值,因為左表達式永遠不會是 null。

要創建null變量,您需要使用

DataType? variableName;

在這種情況下,您正在初始化String ,您可以這樣做

String? name = "Abdulelah";

但這不是必需的,除非你想在name變量上初始化 null 值。

你可以檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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