简单了解一下什么是匿名函数,以及匿名函数跟一般函数的区别。

匿名函数,顾名思义,就是没有名字的函数,匿名函数可以作为参数传递给另一个函数,也可以作为返回值返回。我们可以通过表达式赋值给变量来使用,也可以当作参数被调用,还可以通过函数嵌套当成闭包里的返回函数来调用,甚至可以自己调用自己,总的来说,匿名函数不能像一般函数那样直接定义使用,只能是被调用或是子调用。在许多编程语言中,匿名函数都有自己的实现方式。

例如,在Python中,匿名函数可以使用lambda关键字来定义:

1
2
3
4
add = lambda x, y; x + y
print(add(3, 4))

#输出 : 7

在C++中,匿名函数可以使用std::function来定义:

1
2
3
4
std::function<int(int, int)> add = [](int x, int y) { return x + y; };
std::cout << add(3, 4) << std::endl;

//输出 : 7

在Java中,匿名函数可以使用Lambda表达式来定义:

1
2
3
4
5
(int x, int y) -> x + y

print(add(3, 4))

//输出 : 7

在Lua中,匿名函数可以使用函数表达式来定义:

1
2
3
4
5
local function1 = function(x, y) return x + y end

print(function1(3, 4))

--输出 : 7

在C#中,匿名函数可以使用Lambda表达式来定义:

1
2
3
4
Func<int, int, int> add = (x, y) => x + y;
Console.WriteLine(add(3, 4));

//输出: 7