Java中lambda和Python中lambda的区别和各自用法

本文探讨了Java和Python中Lambda表达式的不同用法。在Java中,Lambda用于简化单方法接口的实现,例如在多线程场景下简化Runnable接口的使用。而Python的Lambda则用于创建简洁的一行函数。通过实例代码展示了如何在两种语言中使用Lambda,强调了它们在简化代码和提高效率上的角色。

【1】首先介绍下Java中的lambda的定义和用法

        1.定义:java中的lambda是为了简化接口的重写方法体的。

        2.作用条件:使用lambda的前提是必须有一个接口,并且接口中只有一个要重写的抽象方法,我们才可以使用,例如多线程的Runnable接口,我们就可以用lambda表达式。

        3.语法:(参数)->{重写接口中的方法}

        4.举例

        first:正常情况下,我们使用Runnable接口需要先创建一个实现类。重写里面的run方法

public class manyThread implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"新的线程创建了"
        );
    }
}
    

        second:我们重写了run方法后,就可以在主类中开启多线程,并传入Runnable的实现类

public class Demo01 {
    public static void main(String[] args) {
        //创建Runable接口的是是实现类对象
        RunableImpl ri=new RunableImpl();
        Thread t=new Thread(ri);
        t.start(); 
    }
}

        如果利用lambda表达式就非常简便了,就不需要创建实现类了

public class Demo01 {
    public static void main(String[] args) {
        //简化代码
        //这里还用到了匿名内部类,不需要创建接口的实现类
        new Thread( new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"新的线程创建了");
            }
        }).start();
        //使用lambda表达式简化
        new Thread(()->
            {System.out.println(Thread.currentThread().getName()+"新的线程创建了");}
        ).start();
    }
}

        大家完全可以把Runnable r1=(参数列表)->{重写接口的抽象方法},这时r1对象的类型就是继承自Runnable接口。

【2】python中的lambda表达式,和java中的用法和定义都不太一样

        1.定义:如果一个函数只有一个返回值,并且只有一句代码,可以使用lambda简化

        2.语法:lambda 参数列表:表达式

        3.注意:lambda的表达式参数可有可无,函数的参数在lambda中完全适用

#函数写法
def fn1(a,b):
    result=a+b
    return result;
print(fn1(1,2))

# lambda写法
fn2=lambda a,b:a+b
print(fn2(4,2))

        在python中,lambda的作用就是简化函数,而不是重写简化接口,冒号:后面就是我们python中函数需要返回的值,

        再看一段代码

fn1=lambda a:a
print(fn1("a是参数,而且我把a作为返回值"))

fn2=lambda *args:args
print(fn2(10,20,30))

        相信大家已经对java和python中的lambda的区别已经有了很好的认识了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hpeacheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值