bud*_*udi 1 c# lambda currying
我偶然发现了这个代码高尔夫问题:
给定一个字符串
s
和一个n
表示索引的整数s
,输出第 - 个位置s
的字符n
被删除.
得票最高的答案(截至本文)是在C#中.
s=>n=>s.Remove(n,1);
Run Code Online (Sandbox Code Playgroud)
这种多重=>
语法是什么?它看起来类似于lambda表达式(s,n)=>s.Remove(n,1)
,但我无法弄清楚如何使用此代码.
当它分散一点时它很简单!
s =>
n =>
s.Remove(n, 1);
Run Code Online (Sandbox Code Playgroud)
让我们调用我们的函数fn
:fn
用变量调用s
返回另一个带变量的函数n
.
fn("hello")(0)
Run Code Online (Sandbox Code Playgroud)
你可以看到,在打电话之后fn("hello")
,我们实际上得到了这个:
n => "hello".Remove(n, 1);
Run Code Online (Sandbox Code Playgroud)
所以当我们调用返回的函数时,我们通过赋予它来执行它n
.