Я до сих пор довольно новичок в Dart, и синтаксис => (жирная стрелка) все еще меня смущает (я исхожу из фона C#).Dart lambda/shortland function confusion
Так в C# жира стрелка (=>) говорит: идет к так, например:
Action<string> action1 = (str) => { System.Diagnostic.Debug.WriteLine("Parameter received: " + str.ToString()); }
action1("Some parameter");
означает: что бы отправить в качестве параметра action1
(если он может быть преобразован в string
) идет в внутренняя сфера (в нашем случае это просто напечатано в Debug.WriteLine()
но Дарт это что-то другое .... (?)
, например, в Future.then
ClassWithFutures myClass = new ClassWithFutures();
myClass.loadedFuture.then(
(str) => { print("Class was loaded with info: $str"),
onErrro: (exp) => { print("Error occurred in class loading. Error is: $exp"); }
);
Dart редактор предупредить меня о том, что первый и второй print
является: Expected string literal for map entry key
. Я думаю, что в C# так, что str
это просто имя для параметра, который будет наполняться внутренним обратным вызовом, который Future.then
используется для вызова onValue
или onError
Что я делаю неправильно?