JAVA学习日记: Lambda表达式(2)

今天学习了的主要内容:

1.Lambda表达式的基本语法规则

主要语法规则:

lambda标准写法:(类型 参数名,  类型 参数名) -> {方法实现体;}
						也可以不写类型,直接参数 
lambda表达式与方法的差异:
没有名称
没有返回值类型,返回值类型是根据匹配的方法来确定的
不可以有throws语句,编译器会自行推断
不可以是泛型类型的参数
可以将它赋值给一个合适的函数式接口变量

实现体:
	 实现体可以为代码块和表达式
	 代码块使用大括号末尾有分号
	 表达式可以不用大括号和分号结尾
	 建议都用大括号套上,方便阅读和规范
	  
无参数声明:
	 没有参数我们要使用小括号的话还是得加上小括号,不允许没有小括号

LambdaTest02(主测试类):

package LessonForLambda02;

@FunctionalInterface
interface Gameable01 
{
    
    
	public double getGamePrice01(double price1, double price2);
}

@FunctionalInterface
interface Gameable02 
{
    
    
	public double getGamePrice02(double price1, double price2);
}

@FunctionalInterface
interface Gameable03
{
    
    
	public String getGameName(String s);
}

@FunctionalInterface
interface Gameable04
{
    
    
	public void getGame();
}

public class LambdaTest02
{
    
    
	public static void main(String[] args) 
	{
    
    
		//lambda表达式来实现,只要参数类型啥的
		Gameable01 ga11 = (double a, double b)->{
    
    
													return a+b;
												};
												
		Gameable02 ga21 = (double a, double b)->{
    
    
													return a+b;
												};	
												
		Gameable02 ga22 = (double a, double b)->a+b;//表达式形式,不建议用
												
		Gameable03 ga31 = (String s)->{
    
    
										return s.concat("哈哈哈哈");
									};
		//参数可以不写类型							
		Gameable03 ga32 = (s)->{
    
    
									return s.concat("哈哈哈哈");
								};
		//参数只有一个时可以不写小括号但是也不能加类型
		Gameable03 ga33 = s->{
    
    
									return s.concat("哈哈哈哈");
								};
									
		Gameable04 ga41 = ()->{
    
    
								System.out.println("嘻嘻嘻");	
								};
								
		}
}

部分文字来源于:
	咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
	在这里十分感谢老师能够给我带来学习的激情。

2020.10.17
可以转载我的学习日记但请注明出处,谢谢。
本文章是本人学习笔记,不进行任何商用!只为记录本人学习历程。
毕	

猜你喜欢

转载自blog.csdn.net/SIESTA030/article/details/109138489