lambda表达式求解释

时间:2014.04.19 发布人:JDJ小品诺

lambda表达式求解释

已解决问题

谷歌JDJ小品诺用户在2014.04.19提交了关于“张志东lambda表达式求解释”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-23T13:46:20。publicstaticintFactorialConti**ation(intn,Func<int,int>conti**ation)
{
if(n==0)returnconti**ation(1);
returnFactorialConti**ation(n-1,
r=>conti**ation(n*r));
}

FactorialConti**ation(10,x=>x)
上面是方法,下面是调用。我想知道方法里面的r是什么意思。调用的X为什么这样用。越清楚越好。本人初学。谢谢.希望大家能够帮助她。

详细问题描述及疑问:publicstaticintFactorialConti**ation(intn,Func<int,int>conti**ation)
{
if(n==0)returnconti**ation(1);
returnFactorialConti**ation(n-1,
r=>conti**ation(n*r));
}

FactorialConti**ation(10,x=>x)
上面是方法,下面是调用。我想知道方法里面的r是什么意思。调用的X为什么这样用。越清楚越好。本人初学。谢谢.期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!

希望以下的回答,能够帮助你。

第1个回答

用户名:fdhj96k3  

lambda表达式就是来自匿名函数的简写

delegate(intage)
{
returnage<18;
}

我们就可以写成Lambda表达式的形式:

age=>age<18

这是一个很简单的例子,基本上一目了然。Lambda的基本形式是argument-list=>expression,=>是Lambda表达式的标识符而不是运算符,显而易见的镇天项逐境才胞,=>的作用就是{}花括号的作用,与此同时,我们看到了在Lambda表达式中被省略掉的还有参数声明中的**类型和return关键字以及句尾的分号,因为它们在La宽酒销者画记厚换室mbda表达式中不是必需的,在有参数的情问答况下表达式总是会返回一批型背观独配编延个值,而没有参数元排立掉的情况下表达式也可以不必返回任何值,参数的**类型是靠编译器从顾县兵别文开镇准久右边的表达式中反推出来的,另外,=>右边只是一个表达式而不争便与皮制层季贵单仍素是一句完整的语句,所以如果画蛇添足地加上分号就违背了语法规则。