gpt4 book ai didi

loops - 鉴于缺少 do-while 语句,如何使用 Groovy 迭代 inputStream 中的所有字节?

转载 作者:行者123 更新时间:2023-12-03 15:17:47 45 4
gpt4 key购买 nike

鉴于 Groovy 没有 do-while 语句,我如何遍历输入流中的所有字节?

每一个 previous version of the Groovy user guide :

No 'do ... while()' syntax as yet.

Due to ambiguity, we've not yet added support for do .. while to Groovy



在 Groovy 中执行以下 Java 代码的最佳方法是什么?
def numRead = inputStream.read(fileBytes, 0, fileBytes.length);
do{

} while(numRead > 0);

(我知道我可以使用 bool 值来做到这一点,我只想知道是否有一种“Groovy”方式来做到这一点)

最佳答案

我知道这是一个旧的并且已经回答的问题。但这是第一个在谷歌搜索时弹出的“groovy do while”。

我认为 Groovy 中一般相当多的 do-while 同义词可能是:

while ({
...

numRead > 0
}()) continue

请考虑上面的例子。除了一些“冗余”括号外,它的语法可读性很好。

这是它的工作原理:
  • 内部while条件圆括号闭包定义为大括号打开
  • 在大括号关闭后,闭包与内圆括号对内联执行
  • 闭包内最后一行的值是当 false(它从闭包返回)时将中断循环的值
  • continue在关闭圆括号的 while 条件之后只是因为必须有“某物”,任何可编译的语句。例如它可以是 0 ,虽然 continue似乎更合身。

  • 编辑:不确定它是 Groovy 的新版本还是我之前错过了。
    而是 continue分号也可以。然后它是这样的:
    while ({
    ...

    numRead > 0
    }());

    关于loops - 鉴于缺少 do-while 语句,如何使用 Groovy 迭代 inputStream 中的所有字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188641/

    45 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com