21

Luaで少し遊んでいます。

予期しない動作をする次のコード スニペットを見つけました。

a = 3;
b = 5;
c = a-- * b++; // some computation
print(a, b, c);

Lua はエラーなしでプログラムを実行しますが2 6 15、期待どおりに印刷しません。なんで ?

4

8 に答える 8

35

--#または//他の言語のように、単一行のコメントを開始します。

したがって、次と同等です。

a = 3;
b = 5;
c = a
于 2012-12-18T22:56:12.323 に答える
12

++LUA は、およびで増減しません----代わりにコメントを開始します。

于 2012-12-18T22:47:15.567 に答える
2

これにより、

3 5 3

3行目は と評価されるからc = aです。

なんで?Lua では、コメントは--. したがって、c = a-- * b++; // some computationは次の 2 つの部分として評価されます。

  1. 表現:c = a
  2. コメント:* b++; //// some computation
于 2015-03-26T16:44:04.197 に答える