这个运算符 => 叫什么名字?

6
4个回答

16

这在MSDN文档中被称为lambda运算符

所有的lambda表达式都使用lambda运算符“=>”,它的读法是“goes to”。lambda运算符的左侧指定输入参数(如果有的话),右侧则包含表达式或语句块。lambda表达式“x => x * x”可以读作“x goes to x times x”。可以将此表达式分配给委托类型,如下所示:


3

这是lambda运算符

另外,Ruby中被称为“哈希火箭”运算符。


2
如果你是在LINQ的上下文中谈论的话,那就是一个 lambda运算符。例如...
var selectedValues = myList.Where(v=>v.Name="Matt");

你可以在自己的方法中使用这些代替委托。可能的用途包括像这样...
void DoWork<T>(T input, Func<T, bool> doAction, Action<T> action)
{
    if (doAction(input))
        action(input);
}

使用以上方法的样例看起来像是...
DoWork(5, i=>i>1, v=>Console.WriteLine(v));

因为5大于1,所以这将在控制台上显示5。

Lambda运算符不仅仅与LINQ一起使用。 - Femaref
我相信我的例子表明了... 我在这个语境中说,因为他可能在像 for (; i=>1;) 这样的例子中看到一些疯狂的东西,而没有意识到那是一个正常的表达式。更有趣的是,在 LINQ 中,你也可以使用 .Select(i=>"New Value") 来创建一个与输入集合长度相同的可枚举的 "New Value" 集合。 - Matthew Whited
1
只是为了明确,=>不是“lambda表达式” - 它只是其中的一部分 - Marc Gravell
我以为那很清楚...但我会改变我的答案。 - Matthew Whited

1

顺便提一下,对于 Ruby 程序员来说,这个操作符被称为“哈希箭头”。(甚至有一家以此命名的公司。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接