所以,我正在做作业。我遇到了一些我以前从未见过的东西,并且无法找到一个体面的解释来解释它的作用。基本上,
Object object;
...
while((value1, value2) = function(object)) {
object.foo(value1, value2);
}
while 语句中的 (value1, value2) 真的让我很震惊。有任何想法吗?
所以,我正在做作业。我遇到了一些我以前从未见过的东西,并且无法找到一个体面的解释来解释它的作用。基本上,
Object object;
...
while((value1, value2) = function(object)) {
object.foo(value1, value2);
}
while 语句中的 (value1, value2) 真的让我很震惊。有任何想法吗?
它是一个逗号运算符。
逗号运算符的结果是最后一个值(其他值被评估并丢弃)。
while((value1, value2) = function(object)) {
object.foo(value1, value2);
}
如果 value1 只是一个变量而不是表达式,那么它也是等价的:
while(value2 = function(object)) {
object.foo(value1, value2);
}
如果 value1 是一个表达式,那么每次循环都会对其进行评估。结果被丢弃,但如果表达式有副作用,这些将生效。