Вопросительный знак перед точкой в ​​дартс - PullRequest
0 голосов
/ 25 июня 2019

Что означает знак вопроса в этом куске кода?И когда я должен использовать это?Мой код работает одинаково с вопросительным знаком или без него.

void dispose(){
  bloc?.dispose();
  super.dispose();
}

1 Ответ

1 голос
/ 25 июня 2019

Знак вопроса - один из операторов, поддерживающих нулевое значение, в Dart. В этом примере написано: вызовите метод dispose() only , если bloc не равно нулю. Без знака вопроса, если bloc было бы нулевым, когда он попытался бы вызвать dispose(), то было бы выброшено NoSuchMethodError.

На сайте Dart есть полезный раздел, посвященный операторам с нулевым значением:

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

...