tal*_*las 15 groovy loops do-while
鉴于Groovy没有do-while语句,我如何迭代输入流中的所有字节?
目前还没有'do ... while()'语法.
由于含糊不清,我们还没有增加对Groovy的支持
在Groovy中执行以下Java代码的最佳方法是什么?
def numRead = inputStream.read(fileBytes, 0, fileBytes.length);
do{
} while(numRead > 0);
Run Code Online (Sandbox Code Playgroud)
(我知道我可以使用布尔值来做到这一点,我只想知道是否有"Groovy"方式)
top*_*opr 17
我知道这是一个陈旧且已经回答的问题.但这是第一次用谷歌搜索"groovy do while"的第一个.
我觉得一般相当DO-而在Groovy同义词可以是:
while ({
...
numRead > 0
}()) continue
Run Code Online (Sandbox Code Playgroud)
请考虑上面的例子.除了一些"冗余"括号外,它的语法相当好.
以下是它的工作原理:
while条件圆形括号内部的一个闭合被定义为花括号打开continue条件关闭圆括号之后只是因为必须有'某事',任何可编辑的声明.例如它可能是0,但continue似乎更适合.编辑:不确定它是Groovy的新版本还是我以前错过了.而continue分号也可以.然后就像:
while ({
...
numRead > 0
}());
Run Code Online (Sandbox Code Playgroud)
ata*_*lor 13
groovy(版本1.8+)的方式是这样的:
inputStream.eachByte(BUFFER_SIZE) { buffer, numRead ->
...
}
Run Code Online (Sandbox Code Playgroud)