这是什么新的关键字“产量”在Java中13是什么意思?

zerocewl:

Java的13推出的yield关键字switch表达式。

我如何使用它,有什么区别为默认returnbreak价值?

安德鲁Tobilko:

Q&A

我如何使用它?

  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;
        }
    };
    
  2. 与传统的块:

    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语句将通过控制使一个封闭switch表达,以产生指定的值。

有什么区别,以中断值?

break值为语句赞成的下降yield声明。

规格

规范JEP 354附着在JLS 13这概括了我们需要了解新的一切switch请注意,这是不合并到语言规范,因为它仍然是一个预览功能,因此,目前还没有语言的永久组成部分。

yield语句将通过使包围控制switch表达,以产生一个指定的值。

YieldStatement:
    yield Expression;

yield语句试图控制转移到最内层的闭合开关表达; 该表达式中,这就是所谓的产量目标,然后立即正常完成和的值Expression变为值switch表达。

  • 这是一个编译时错误,如果一个yield语句没有产量目标。

  • 它是一个编译时间错误,如果yield目标包含任何方法,构造,初始化,或λ包围yield语句表达。

  • 这是一个编译时错误,如果Expression一个的yield声明是无效的(15.1)。

A的执行yield语句首先评估Expression如果评价Expression完成突然出于某种原因,那么yield语句突然完成了这个原因。如果评估Expression完成正常,产生价值V,那么yield语句突然结束,原因是与价值的产量V

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

芹菜中bind = True关键字是什么意思?

“ this”关键字在初始化程序块中是什么意思?

在关键字“ forEach”中,“ return”关键字是什么意思?

关键字“ const”不会使值不变。这是什么意思?

关键字“ transient”在Java中是什么意思?

jsr关键字是什么意思?

'fileprivate'关键字在Swift中是什么意思?

在Raku类定义中,“具有”关键字在“方法”之前是什么意思?

“ __block”关键字是什么意思?

显式关键字是什么意思?

Swift中的“ required”关键字是什么意思?

ALSO关键字在MLISP中是什么意思?

“ self”关键字在WebWorkers中是什么意思

Laravel路由中的“ as”关键字是什么意思?

LLVM tablegen中的field关键字是什么意思?

模块关键字在打字稿中是什么意思?

关键字strictfp是什么意思?

“和”关键字在OCaml中是什么意思?

Ruby的AST中的'send'关键字是什么意思?

界面中的关键字“ new”是什么意思?

“ Base”关键字在Julia中是什么意思?

header / impl关键字在kotlin中是什么意思?

关键字对象在Kotlin中是什么意思?

我的/ etc / network / interfaces中的关键字是什么意思?

D中的“ in”和“ out”关键字是什么意思?

熊猫查询方法中关键字“ columns”是什么意思?

Future,async,await 关键字是什么意思?

点(在两个关键字之间)在 ARM 汇编中是什么意思?

new 关键字在界面中是什么意思