Ответ 1
Это переменная с именем _
обычно, потому что вы планируете не использовать ее и выбросить. Например, вы можете использовать имя x
или foo
.
Разница между (_)
и ()
проста в том, что одна функция принимает аргумент, а другая - нет.
Я изучаю Дарт и вижу следующую идиому:
someFuture.then((_) => someFunc());
Я также видел код вроде:
someOtherFuture.then(() => someOtherFunc());
Существует ли разница между этими двумя примерами?
A.k.a., Что передает _
как параметр функции Дарта??
Это особенно запутанно, учитывая использование Dart _
в качестве префикса для объявления частных функций.
Спасибо.
Это переменная с именем _
обычно, потому что вы планируете не использовать ее и выбросить. Например, вы можете использовать имя x
или foo
.
Разница между (_)
и ()
проста в том, что одна функция принимает аргумент, а другая - нет.
Это выражение похоже на "обратные вызовы" в node.js, выражение имеет отношение к async-задаче.
Сначала помните, что выражение => expr
является сокращением для {return *expr*}
, теперь в someFuture.then((_) => someFunc())
, someFuture
является переменной типа Future
, и это сохраняет вашу задачу async, с помощью метода .then
, который вы говорите что делать с вашей задачей async (после завершения), и аргументы в этом методе вы поместите обратный вызов ((response) => doSomethingWith(response))
.
Вы узнаете больше в API на основе будущего и Функции в Dart. Благодаря