在Dart语言中,"?. "是什么意思?

5
在Dart语言中,"?."用于判断对象是否为空。这里有一个来自Flutter的scaffold.dart代码示例:
_drawerKey.currentState?.open();
2个回答

7

2
为了保护一个可能为null的对象的属性或方法的访问,可以在点号(.)之前加上问号(?):
myObject?.anyProperty

上述代码等同于以下内容:

(myObject != null) ? myObject.anyProperty: null

您可以在单个表达式中链接多个?.的用法:

myObject?.anyProperty?.anyMethod()

如果myObject或myObject.anyProperty为空,则上述代码将返回null(且不会调用anyMethod())。

更多信息请阅读官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接