だから、私は宿題をしています。これまでに見たことのないものに遭遇しましたが、それが何をするのかについての適切な説明が見つかりません。基本的、
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 が式の場合、ループのたびに評価されます。結果は破棄されますが、式に副作用がある場合は有効になります。