?运算符避免 dart 中的 NoSuchMethodError
? operator to avoid NoSuchMethodError in dart
我看到有人试图通过使用 ? 来避免 NoSuchMethodError 的视频。操作员 。这是代码:
/*1*/ void main () {
/*2*/ var v = vu() ;
/*3*/ var f = v.casting() ;
/*4*/ f.tbu ;
/*5*/}
第 4 行显示错误
Unhandled exception: NoSuchMethodError: The
getter 'tbu' was called on null. Receiver: null Tried calling: tbu
但他用了?运算符:
/*1*/ void main () {
/*2*/ var v = vu() ;
/*3*/ var f = v.casting() ;
/*4*/ f?.tbu ;
/*5*/}
运行没问题。
My question is what is the ? operator ??
点之前的问号允许 conditional property access,它防止尝试访问可能为 null 的对象的 属性 或方法:
myObject?.someProperty
等同于:
(myObject != null) ? myObject.someProperty : null
这类似于 JavaScript 中的 optional chaining。
我看到有人试图通过使用 ? 来避免 NoSuchMethodError 的视频。操作员 。这是代码:
/*1*/ void main () {
/*2*/ var v = vu() ;
/*3*/ var f = v.casting() ;
/*4*/ f.tbu ;
/*5*/}
第 4 行显示错误
Unhandled exception: NoSuchMethodError: The getter 'tbu' was called on null. Receiver: null Tried calling: tbu
但他用了?运算符:
/*1*/ void main () {
/*2*/ var v = vu() ;
/*3*/ var f = v.casting() ;
/*4*/ f?.tbu ;
/*5*/}
运行没问题。
My question is what is the ? operator ??
点之前的问号允许 conditional property access,它防止尝试访问可能为 null 的对象的 属性 或方法:
myObject?.someProperty
等同于:
(myObject != null) ? myObject.someProperty : null
这类似于 JavaScript 中的 optional chaining。