Я все еще довольно новичок в 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
Что я делаю не так?