Luaリファレンス 要注意点 ~代入~†
- Luaは代入はステートメントであり、2項演算子ではない。よって
a = b = c = 0
といったことは不可能。
= は1つのステートメントに1つだけである。
多重代入†
- 多重代入は、「値を交換」する時や、「関数の戻り値がリストになっていて、これを受け取る時」に利用する。
a, b = 10, 2
a, b = b, a -- 値の交換
a, b, c = table.unpack( {1, 2, 3} ) -- 複数の戻り値を受け取る
「値のコピー」か「参照」か†
- table型、function型、thread型、userdata型は「参照」
- nil型、boolean型、number型、string型は「値のコピー」
(※参照:「型」)
|