zoukankan      html  css  js  c++  java
  • Lamda Expression

    Lambda表达式又被成为闭包或者匿名函数(闭包的概念主要出自于函数式编程)。

    在Java中,我们可以将Lambda表达式看作是任意函数式接口类型的一个匿名实例。Java Lambda表达式的出现,从一定程度上改变了代码的编写方式,提供了更轻量级的语法实现。为了快速理解这一概念我们通过下面的示例代码进行理解: 
    Java Lambda Expression 出现前的函数式接口编码方式(‘重量级”编程方式)
    Collections.sort(list, new Comparator<String>(){
        @Override
        public int compare(String str1, String str2){
            return str1.compareTo(str2);
        }
    })123456
    Java Lambda Expression 出现之后的Lambda式编码方式(“轻量级”编码方式)
     
    Collections.sort(list, (str1, str2) -> str1.compareTo(str2));1
    在使用Java Lambda Expression之后是不是感觉整个编码方式都不对劲了~^-^~。上面的Lambda表达式将会由Java编译器自动推导出参数类型,并将其翻译为对应的方法。最终我们只是用(str1, str2) -> str1.compareTo(str2)这一段表达式就完成了之前需要使用一个匿名类来完成的功能。
    lambda表达式的语法由参数列表、箭头符号->和函数体组成。函数体既可以是一个表达式,也可以是一个语句块: 
    1.表达式:表达式会被执行然后返回执行结果。 
    2.语句块:语句块中的语句会被依次执行,就像方法中的语句一样。同样的在执行完所有代码语句后,return语句会把控制权交给匿名方法(Lambda表达式)的调用者。break和continue只能在循环中使用,如果函数体有返回值,那么函数体内部的每一条路径都必须返回值。
  • 相关阅读:
    /proc/interrupts 和 /proc/stat 查看中断的情况
    publish and submit
    camera shading比例
    高负载linux调优
    linux网络socket 接口转
    深入分析linux调度机制
    大型网站架构之分布式消息队列
    Linux下高并发socket最大连接数所受的各种限制(详解)
    Linux服务器高并发实践经历
    oracle: 分割字符串,或者查找字段里面的关键字(关键字1,关键字2,关键字3)
  • 原文地址:https://www.cnblogs.com/wpj593780933/p/10828140.html
Copyright © 2011-2022 走看看