語法糖 ?. 與 ??
dart 語法糖 ?.
它的意思是左邊如果為空返回 null,否則返回右邊的值。
A?.B
如果 A 等于 null,那么 A?.B 為 null
如果 A 不等于 null,那么 A?.B 等價于 A.B
void main() {
Animal animal = new Animal('cat');
Animal empty = null;
//animal 非空,返回 animal.name 的值 cat
print(animal?.name);
//empty 為空,返回 null
print(empty?.name);
//animal 非空,可以直接訪問 animal.name 的值 cat
print(animal.name);
//empty 為空,拋出異常
print(empty.name);
}
class Animal {
final String name;
Animal(this.name);
}
運行后會看到如下輸出:
cat
null
cat
Uncaught exception:
Cannot read property 'get$name' of null
dart 語法糖 ??
它的意思是左邊如果為空返回右邊的值,否則不處理。
A??B
如果 A 等于 null,那么 A??B 為 B
如果 A 不等于 null,那么 A??B 為 A
以上面為例子,假設(shè)我們上面要求當(dāng) empty 為空時,默認值輸出 unknown。
那么可以修改如下:
//empty 為空,返回 null
print(empty?.name);
改為:
//empty 為空,本來要返回 null,由于有 ??,返回 unknown
print(empty?.name??'unknown')
b ??= 'hello';
如果b為null的情況下,b等于hello。如果不為null則不作任何操作
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。