初学lambda
lambda是什么
lambda函数是一个如今普遍使用的编程方法, 目的是通过简化函数的格式, 来达到简化代码的目的; 不同编程语言/平台有着不同的写法, 这里主要先学习java/python里的lambda
lambda允许函数被定义时, 不需要命名, 而是像写表达式一样写函数
python
格式
lambda argument_list:experssion
举例
# 写一个lambda函数, 计算列表内元素的平方
map(lambda x: x*x, [y for y in range(10)])
# 使用def来写的话
def sq(x):
return x*x
map(sq, [y for y in range(10)])
java
格式
(parameters) -> expression
举例
// to sort an array
// original way
Integer[] numbers = {5, 12, 11, 7};
Arrays.sort(numbers, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b - a;
}
});
// with lambda
Integer[] numbers = {5, 12, 11, 7};
Arrays.sort(numbers, (a, b) -> b-a);
System.out.println(Arrays.toString(numbers));
这里使用的是java的Comparator接口, 一般是用来自定义比较大小的规则的
返回负数说明a < b, 返回0说明相等, 返回正数说明a > b
sort函数是通过这些返回的数来判断的