Java 13中新的关键字“ yield”是什么意思?
Java 13引入了 用于switch表达式的关键字。
如何使用它,与默认值return或break值有什么区别?
回答:
回答:
如何使用?
需要完整块时,带有箭头标签:
int value = switch (greeting) {case "hi" -> {
System.out.println("I am not just yielding!");
yield 1;
}
case "hello" -> {
System.out.println("Me too.");
yield 2;
}
default -> {
System.out.println("OK");
yield -1;
}
};
使用传统积木:
int value = switch (greeting) {case "hi":
System.out.println("I am not just yielding!");
yield 1;
case "hello":
System.out.println("Me too.");
yield 2;
default:
System.out.println("OK");
yield -1;
};
默认收益有什么区别?
一条return语句将控制权返回给
(第8.4节,第§15.12节)或
(第8.8节和第15.9节)
而一条yield语句则通过 产生一个指定值来转移控制权。
突破值有什么区别?
该break值为语句赞成的下降yield声明。
回答:
JLS 13附带有JEP
354规范,该规范总结了我们需要了解的有关新产品的所有信息。请注意,它没有被合并到语言规范中,因为它仍然是预览功能,因此不是该语言的永久组成部分。switch
一条
yield语句通过使一个封闭的switch表达式产生一个指定值来转移控制权。YieldStatement:yield Expression;
一条
yield语句试图将控制权转移到最内层的switch表达式;该表达式(称为 yield target)然后立即正常完成,并且的值
Expression成为switch表达式的值。
如果
yield语句没有屈服目标,则是编译时错误。如果
yield目标包含包围yield语句的任何方法,构造函数,初始化程序或lambda表达式,则是编译时错误。这是一个编译时错误,如果
Expression一个的yield声明是无效的(15.1)。执行
yield语句首先评估Expression。如果由于Expression某种原因突然完成了评估,则该yield语句由于该原因而突然完成。如果对值的评估Expression正常完成,则产生一个值V,然后该yield语句突然完成,原因是带有值的产量V。
以上是 Java 13中新的关键字“ yield”是什么意思? 的全部内容, 来源链接: utcz.com/qa/406981.html

