有什么用?之前的运算符。飞镖操作员

时间:2019-11-07 10:47:43

标签: flutter dart

我是飞镖新手,目前正在学习中,有些地方我展示了一种方法

Future<void> _showMessage(String message) =>
  _scaffoldKey.currentState?.showSnackBar(
      SnackBar(
        content: Text(message),
        duration: const Duration(seconds: 2),
      )
  )?.closed;

在这里我没有使用?之前的运算符。运算符与Kotlin(均值检查可空性)相同或不同。

2 个答案:

答案 0 :(得分:1)

这是有条件的成员访问权限。

来自Dart文档

  

与。类似,但最左边的操作数可以为null;示例:foo?.bar从表达式bar中选择属性foo,除非foo为null(在这种情况下foo?.bar的值为null)

来源:Dart Language Tour Documentation

答案 1 :(得分:0)

用于空检查

运算符大致翻译为“如果对象不为null,则访问内部字段,否则返回null。”

示例:-

要检查对象是否为空,必须编写大量代码

Point point; 

if(point != null) {
    print(point.x) 
  } 
  else { 
    print("No value");
  } 

但是带有“?”操作员,您可以轻松完成

Point point; 

int x = point?.x ?? 0;