Lambda语法如下所示:()=>

时间:2016-03-15 15:21:45

标签: c# lambda

我遇到了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表达式,但这个对我来说并不清楚。

2 个答案:

答案 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的类似类型会返回结果。