0

所以,我正在做作业。我遇到了一些我以前从未见过的东西,并且无法找到一个体面的解释来解释它的作用。基本上,

Object object;
...
while((value1, value2) = function(object)) {
    object.foo(value1, value2);
}

while 语句中的 (value1, value2) 真的让我很震惊。有任何想法吗?

4

1 回答 1

1

它是一个逗号运算符。

逗号运算符的结果是最后一个值(其他值被评估并丢弃)。

while((value1, value2) = function(object)) {
    object.foo(value1, value2);
}

如果 value1 只是一个变量而不是表达式,那么它也是等价的:

while(value2 = function(object)) {
    object.foo(value1, value2);
}

如果 value1 是一个表达式,那么每次循环都会对其进行评估。结果被丢弃,但如果表达式有副作用,这些将生效。

于 2013-07-06T05:05:38.217 回答