【发布时间】:2013-03-26 02:35:23
【问题描述】:
我对 Dart 还是很陌生,=>(粗箭头)的语法仍然让我感到困惑(我来自 C# 背景)。
所以在 C# 中,胖箭头 ( => ) 表示:goes to 例如:
Action<string> action1 = (str) => { System.Diagnostic.Debug.WriteLine("Parameter received: " + str.ToString()); }
action1("Some parameter");
表示:任何作为参数发送到action1(如果它可以转换为string)进入内部范围(在我们的例子中它只是打印在Debug.WriteLine()
但在 Dart 中却有所不同.... (?)
例如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"); }
);
Dart 编辑器警告我,第一个和第二个 print 是:Expected string literal for map entry key。我认为在 C# 方式中 str 它只是参数的名称,该参数将由 Future.then 用于调用 onValue 或 onError 的内部回调填充
我做错了什么?
【问题讨论】:
-
您的示例中缺少大括号:
(str) => { print("Class was loaded with info: $str") },
标签: dart