Nadal jestem całkiem nowy dla Dart, a składnia => (gruba strzała) wciąż mnie myli (pochodzę z tła C#).Dezorientacja funkcji darta lambda/shortland
Więc w C# tłuszczu strzałką (=>) mówi: idzie tak na przykład:
Action<string> action1 = (str) => { System.Diagnostic.Debug.WriteLine("Parameter received: " + str.ToString()); }
action1("Some parameter");
oznacza: cokolwiek wysłać jako parametr do action1
(jeśli może to być lanego do string
) idzie do zakres wewnętrzna (w naszym przypadku jest tylko drukowane w Debug.WriteLine()
ale w Dart to coś innego .... (?)
na przykład w 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"); }
);
redaktor Dart mnie ostrzec, że pierwszy i drugi print
jest: Expected string literal for map entry key
. Myślę, że w C# sposób, że str
to tylko nazwa dla parametru, który będzie wypełniony przez wewnętrzne zwrotnego że Future.then
używa zadzwonić onValue
lub onError
Co robię źle?