函数是函数式编程的核心,在之前的内容中,我们介绍了有关F#强大的类型推断能力,但F#其实是一门静态强类型的语言,C#自然也是。对于这种类型的语言,函数和其参数都是有自己的类型。在这样的情况下,我们可以通过一些方式去描述我们的函数。
函数签名
函数签名通常由箭头符号组合而成,让我们从最简单的开始
int AddOne(int a) => a + 1;
这个函数的签名就是
AddOne: int -> int
代表"函数AddOne输入一个int返回一个int"。
对于返回为void或者没有输入参数的函数来说,我们一般使用()表示,例如()->string,代表, 函数不接受任何参数,返回一个string。
以下是一些函数的例子,左侧为函数签名,右侧为C#函数(lambda)
() -> string () => "Hello, World!";
() -> int () => 42;
(int, int) -> int (int a, int b) => a + b;
string -> int (string s) => s.Length;
int -> bool (int x) => x % 2 == 0;
() -> () () => Console.WriteLine("Hello, World!");
还记得我们上一讲说到的高阶函数吗?也可以写出其函数签名
Func<int, int, bool> SwapArgs(Func<int, int, bool> func)
=> r

最低0.47元/天 解锁文章
927

被折叠的 条评论
为什么被折叠?



