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 に答える