Вызов функции с нулевым знанием? - PullRequest
0 голосов
/ 28 февраля 2019

В Dart есть некоторые операторы, поддерживающие нуль, т. Е. Можно выполнить

var obj;
obj?.foo(); // foo is only called if obj != null.

Возможно ли это также для функций, которые хранятся или передаются в переменные?Обычный шаблон:

typedef void SomeFunc();

void foo(SomeFunc f) {
  if (f != null) f();
}

Было бы неплохо, чтобы здесь был какой-то ноль-осведомленный вызов, например f?().Что-нибудь, что мы можем использовать, чтобы не засорять код нулевыми проверками для этих обратных вызовов?

1 Ответ

0 голосов
/ 28 февраля 2019

Форма документы :

Dart - это настоящий объектно-ориентированный язык, поэтому даже функции являются объектами и имеют тип Function.

Применение оператора ?. с указанием нуля к методу call функциональных объектов:

typedef void SomeFunc();

SomeFunc f = null;

f?.call();
...