J ji233 管理员 管理成员 2024 · 中秋 2021/02/05 #1 请看下面一段错误的代码: 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)
请看下面一段错误的代码: 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 2021/02/14 #2 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) 点击展开... 厉害,对于一个学python的表示看不懂
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) 点击展开... 厉害,对于一个学python的表示看不懂