-1

それはどういう意味ですか?

e[i] == "-" && (s > 1 || d === null) && ++s, !s && d !== null && (p.push(e[i]), s = 2), "+-".indexOf(e[i]) < (d = null) && (c = 1);

ロジックなしではそれほど多くの記号を読み取ることはできません

4

2 に答える 2

2
if (e[i] == "-" && (s > 1 || d === null))
    ++s;

if (!s && d !== null) {
    p.push(e[i]);
    s = 2;
}

if ("+-".indexOf(e[i]) < (d = null))
    c = 1;

Cのバックグラウンドifがない場合は、最後の割り当てが魅力的でない可能性があります。その場合:

d = null;
if ("+-".indexOf(e[i]) < null)
    c = 1;
于 2012-05-06T14:10:33.380 に答える
1

スペースと改行を追加してみてください。

e[i] == "-" && (s > 1 || d === null) && ++s,
    !s && d !== null && (p.push(e[i]), s = 2),
    "+-".indexOf(e[i]) < (d = null) && (c = 1);

これはコンマ式であることに注意してください。コンマで区切られた3つの式です。各式は、実際には次のステートメントです。

condition && action;

方法が機能するため、Cでこれを回避できます&&。式の場合A && B、最初にAが実行され、Aの結果がtrueの場合にのみBが実行されます。したがって、それ自体A && B;をに変換できますif(A) B;。もちろん、これは式全体の結果がA && B使用されない場合にのみ機能します。

于 2012-05-06T13:58:18.923 に答える