Dart中点前的问号

prk*_*kmk 3 syntax dart bloc

这段代码中的问号是什么意思?我应该什么时候使用它?我的代码在带或不带问号的情况下以相同的方式运行。

void dispose(){
  bloc?.dispose();
  super.dispose();
}
Run Code Online (Sandbox Code Playgroud)

小智 7

问号是 Dart 中的空感知运算符之一。在此示例中,它表示:当不为空时才调用该dispose()方法。如果没有问号,则在尝试调用a时if为 null将被抛出。blocblocdispose()NoSuchMethodError

Dart 站点上有一个关于空感知运算符的有用部分:

https://dart.dev/codelabs/dart-cheatsheet