Выполнение пустой функции на Dart - PullRequest
0 голосов
/ 12 ноября 2018

Допустим, у меня есть этот код:

void test(){
 assert(() {
   print("This is Test");
 });
}

В соответствии с этим вопросом , дартс удалит assert в производственной сборке

а как насчет test() вызываемой функции?

будет ли эта функция удалена при сборке?

или это окажет какое-либо существенное влияние на производительность, если я вызову пустую функцию несколько раз?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Компилятор оптимизирует ваш код путем встраивания и удаления вызовов пустых функций.

0 голосов
/ 12 ноября 2018

будет ли эта функция удалена при сборке?

Нет, если вы не используете его только в других утверждениях. Типичный пример будет следующим:

assert(() {
  test();
  return true;
}());

Если вы только используете его таким образом, то да, функция будет удалена при сборке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...