我遇到了lambda语法,我无法追踪
//grab the loc key
var messageText = NSLocalizedString(locKey, comment: "Key for the alert message")
//we need to merge the loc-args into the currentText
if let locArgs:NSArray = alert["loc-args"] as? NSArray {
for (index, _) in locArgs.enumerate() {
messageText = messageText.stringByReplacingOccurrencesOfString("%\(index+1)$@", withString: locArgs[index] as! String)
}
}
应如何解释?我知道如何使用lambda表达式,但这个对我来说并不清楚。
答案 0 :(得分:4)
它是一个没有任何参数的lambda表达式。你会像这样使用它:
act();
如果有参数,例如:
Action act = x => object.Foo(x);
然后你就像这样使用它:
act(2);
答案 1 :(得分:0)
Action act = () => object.Foo(null);
等同于(不相同)
private void act(){ object.Foo(null); }
其中act
是您调用内联而不是在类中定义它的方法。
Action
是一个不返回结果的委托。还有一个名为Func
的类似类型会返回结果。