Lambda表达式

定义

Lambda 表达式是一个匿名函数,即没有函数名的函数。本文总结Lambda表达式在java,C++,Python中的标准用法和代码示例

java

语法格式:

(parameters) -> expression或(parameters) ->{ statements; }

简单例子:

  1. 不需要参数,返回值为 5
    () -> 5
  2. 接收一个参数(数字类型),返回其2倍的值
    x -> 2 * x
  3. 接受2个参数(数字),并返回他们的差值
    (x, y) -> x – y
  4. 接收2个int型整数,返回他们的和
    (int x, int y) -> x + y
  5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
    (String s) -> System.out.print(s)

代码示例:

//未使用Lambda表达式
button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent actionEvent){
        System.out.println("Action detected");
    }
});
//使用Lambda表达式
button.addActionListener( actionEvent -> { 
    System.out.println("Action detected");
});

C++

语法格式:

[capture list] (parameter list) -> return type { function body }

代码示例:

//未使用Lambda表达式
bool compare(int& a,int& b){return a>b;}
sort(a, a+n, compare);
//使用Lambda表达式
sort(a, a+n, [](int a,int b){return a>b;});

Python

语法格式:

lambda 形参列表 : 函数返回值表达式语句

代码示例:

#未使用Lambda表达式
def comp(x):
    return x["age"]
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li, key=comp)
#使用Lambda表达式
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li, key=lambda x:x["age"])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容