所以,我正在做作业。我遇到过一些我以前没见过的东西,也找不到合适的解释。基本上,
Object object;
...
while((value1, value2) = function(object)) {
object.foo(value1, value2);
}
while语句中的(value1,value2)确实引发了我的注意。有什么想法吗?
答案 0 :(得分:1)
它是逗号运算符。
逗号运算符的结果是最后一个值(其他值被评估并丢弃)。
while((value1, value2) = function(object)) {
object.foo(value1, value2);
}
如果value1只是一个变量而不是表达式,那么它也是等价的:
while(value2 = function(object)) {
object.foo(value1, value2);
}
如果value1是表达式,则每次循环时都会对其进行求值。结果被丢弃,但如果表达式有副作用,这些将生效。