我很少遇到任何其他程序员!
当我第一次看到令牌时,我的想法是"暗示",因为这就是它在数学证明中所读到的,但显然不是它的意义.
那么如何说或读"=>"如下: -
IEnumerableAdults = people.Where(p => p.Age > 16)
或者甚至有一种商定的说法吗?
我通常会在阅读该运算符时说"这样".
在您的示例中,p => p.Age> 16读为"P,使得p.Age大于16".
事实上,我在官方的linq预发布论坛上提出了这个问题,Anders Hejlsberg回应说
我通常将=>运算符读为"变为"或"为此".例如,
Func f = x => x*2;
Func test = c => c.City =="London";
读为"x变为x*2"和"c为c.City等于伦敦"
至于'去' - 这对我来说永远不会有意义.'p'不会去任何地方.
在通过电话向某人读取代码的情况下,只要他们是C#程序员,我就会使用"lambda"这个词 - 也就是说,"p lambda p dot age than than than十六."
在评论中,Steve Jessop在转换的情况下提到了"map to" - 所以以Anders为例:
x => x * 2;
会读
x映射到x乘以2.
对于这种情况,这似乎更接近代码的实际意图而不是"变成".
来自MSDN:
所有lambda表达式都使用lambda operator =>,它被读作"转到".
通过电话阅读代码
来自Eric Lippert:
我个人会说c => c + 1为"看得见加一".我听到的一些变化:
对于投影,(客户c)=> c.Name:"客户看到变成看点名称"
对于谓词,(Customer c)=> c.Age> 21:"客户看到这样看点时间大于二十一"
我一直称它为"王操作员":-)
"p王龄大于16岁"
我见过有人说,"箭头."
我使用"去"因为一本LINQ书告诉我:)
"映射到"怎么样?它既简洁又可以说在技术上更准确(即没有像"转到"或"变成"那样的状态变化的建议,没有一个集合与其特征函数的混淆,如"如此"或"为哪个")而不是其他选择.虽然如果已经有一个标准,因为MSDN页面似乎暗示,也许你应该去那(至少对于C#代码).