原创 Lambda函数的语法结构解析

发布时间:2020-01-14 14:35:43 浏览 2050 来源:博学谷 作者:照照

    说到Lambda函数的语法结构,我想问大家一个问题,什么是Lambda表达式?众所周知,Lambda表达式是一个匿名函数,简单来讲就是没有函数名的函数,它还可以表示闭包。Lambda函数的出现简化了代码,它的语法结构可以这样写:(variable)->action。下面将详细为大家解析Lambda函数的语法结构,感兴趣的朋友可以接着看下去。
      

    Lambda函数


      1、Lambda的函数的语法结构:

     

    (variable)->action
      

    2、语法结构成分解析:

     

    (1)variable:方法的变量名称,可以有多个变量,如果只有一个变量,可以将小括号省略。
      

    (2)action:是方法体,是自己写的代码逻辑的部分。可以是一行代码或者多行代码,如果只有一行代码,可以不要花括号,如果是多行代码,需要用花括号括起来。

     

    (3)-> :这个符号用于将变量和方法体分割开来。
      

    (4)代码示例:

     

    public class Demo1 {
      

    //没有参数的运算
      

    interface NoParamOperation {
      

    double operation();
      

    }
      

    //一个参数的运算
      

    interface SingleParamOperation {
      

    int operation(int a);
      

    }
      

    //两个参数的运算
      

    interface MathOperation {
      

    double operation(double a, double b);
      

    }
      

    public static void main(String[] args) {
      

    //======几种Lambda表达式的写法=============
      

    //得到PI值(没有参数,直接返回)
      

    NoParamOperation pi = () -> Math.PI;
      

    //得到自然常数 (没有参数,直接返回,如果有花括号,要写上显式的加上return)
      

    NoParamOperation e = () -> {
      

    return Math.E;
      

    };
      

    //求平方(如果参数是一个,可以省略小括号)
      

    SingleParamOperation square = a -> a * a;
      

    //求立方(可以指定参数的类型,如果没有编译器会自动推算)
      

    SingleParamOperation cubic = (int a) -> a * a * a;
      

    //加法(如果多个参数,就必须添加上小括号)
      

    MathOperation add = (double a, double b) -> a + b;
      

    //减法(多个参数,也可以不指定参数的数据类型)
      

    MathOperation sub = (a, b) -> a - b;
      

    //乘法(一行代码,函数体上也可以写上花括号)
      

    MathOperation mult = (double a, double b) -> {
      

    return a * b;
      

    };
      

    //除法(如果函数体有多行,就必须有花括号)
      

    MathOperation div = (a, b) -> {
      

    if (b != 0) {
      

    return a / b;
      

    } else {
      

    return 0;
      

    }
      

    };
      

    System.out.println("PI的值" + pi.operation());
      

    System.out.println("自然常数E的值:" + e.operation());
      

    System.out.println("10的平方:" + square.operation(10));
      

    System.out.println("10的立方:" + cubic.operation(10));
      

    System.out.println("20+10:" + add.operation(20, 10));
      

    System.out.println("20-10:" + sub.operation(20, 10));
      

    System.out.println("20*10:" + mult.operation(20, 10));
      

    System.out.println("20/10:" + div.operation(20, 10));
      

    }
      

    }

     

    3、Lambda函数的简化表示:
      

    方法引用是Lambda表达式的一种简写,格式为:ObjectRef::methodName。有三种方法引用类型,分别是静态方法引用、实例方法引用、构造方法引用。
      

    (1)ObjectRef可以是类名、实例名。
      

    2):: 符号是方法引用符号。
      

    (3)#methodName 是引用的方法名。

     

    以上就是Lambda函数的语法结构解析,大家都看懂了吗?关于Lambda函数的更多视频学习资源,尽在博学谷在线学习平台~

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: Python学习路线分享 下一篇: 如何高效学习Python爬虫技术?

相关推荐 更多

热门文章

  • 程序员为什么不爱炫富?
  • Python 新版本中的 6 个新特性,你去体验了么?
  • 搞Java开发,你知道哪些城市最赚钱吗?
  • 互联网行业都有哪些岗位?看看自己适合哪个吧!
  • 10月数据库排行榜出炉,火速围观!
  • GitLab上市,GitHub的最大对手来了!
  • 中办、国办发文!推动现代职业教育高质量发展!
  • 如何实现代码审查反馈?
  • 初学者,你有没有想过放弃这一行
  • 入门IT行业,首门语言该选什么?
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码