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