C# 递归模式 对开发便携程度的提升

ji233

管理员
管理成员
请看下面一段错误的代码:
C#:
ulong f(int n)=>n switch{1 => n ; _ => f(x-1)+1};
请问,错在哪?

由于f()的类型为ulong,而n的类型为int,结合后面的1=>n,我就是把n的值赋值给了f()。C#作为强类型编程语言,这是绝对不允许的。

这是C#的一个新特性,同时也是Lambda表达式的一个新功能 -- 递归模式。
以上代码改正确后,实际上等价于一个递归函数,相比直接写,方便了不少
(我猜不少人不知道XD)
 

完美钢琴David

初来乍到 lv.0
请看下面一段错误的代码:
C#:
ulong f(int n)=>n switch{1 => n ; _ => f(x-1)+1};
请问,错在哪?

由于f()的类型为ulong,而n的类型为int,结合后面的1=>n,我就是把n的值赋值给了f()。C#作为强类型编程语言,这是绝对不允许的。

这是C#的一个新特性,同时也是Lambda表达式的一个新功能 -- 递归模式。
以上代码改正确后,实际上等价于一个递归函数,相比直接写,方便了不少
(我猜不少人不知道XD)
厉害,对于一个学python的表示看不懂
 
顶部