繁体   English   中英

Flutter/Dart - obj.?property 和 obj..property 之间的区别

[英]Flutter/Dart - Difference between obj!.property and obj?.property

在 Flutter/Dart 中,它们是 null 安全功能。 在我的场景中,我打开了 null 安全,我正在尝试获取我的 object MyDateTime 的属性“myDateTime”。 但是编译器会产生错误:

The property 'myDateTime' can't be unconditionally accessed because the receiver can be 'null'.
Try making the access conditional (using '?.') or adding a null check to the target ('!').

这是有道理的,因为 object 可以是 null。

我尝试了两种解决方案

MyDateTime!.myDateTime 

MyDateTime?.myDateTime 

两者都可以正常工作,但我不明白其中的区别?! 谁能详细说明?

MyDateTime..myDateTime的意思是:我知道MyDateTime永远不可能是 null,即使MyDateTime是 null,它也会尝试访问属性myDateTime

MyDateTime?.myDateTime表示:我知道MyDateTime可以是 null,所以如果是,请不要尝试访问属性myDateTime

如果MyDateTime为 null,则第一个返回错误,另一个则不返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM