【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的区别已经有了很好的认识了

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

被折叠的 条评论
为什么被折叠?



