Dart lambda/shortland fonction de la confusion

Je suis encore assez nouveau de Dart et la syntaxe de l' => (grosse flèche) confond encore moi (je viens de C# arrière-plan).

Donc en C# de graisse flèche ( => ) dit: va à ainsi, par exemple:

Action<string> action1 = (str) => { System.Diagnostic.Debug.WriteLine("Parameter received: " + str.ToString()); }

action1("Some parameter");

signifie: quel que soit l'envoyer en tant que paramètre à action1 (si elle pourrait être castée pour string) va à intérieure champ d'application (dans notre cas il simplement imprimés dans Debug.WriteLine()

mais dans Dart il est quelque chose de différent.... (?)

par exemple dans 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 éditeur de m'avertir que le premier et le deuxième print est: Expected string literal for map entry key. Je pense en C# façon que str il juste le nom du paramètre qui sera rempli par les internes de rappel que Future.then utilise pour appeler onValue ou onError

Ce que je fais mal ?

OriginalL'auteur Jasper | 2013-04-04