要素の追加と読み取り
CoddyのLuaジャーニー「Luau入門」セクションの一部。レッスン 14/80。
すでにtable.insertとtable.removeを使ってLuaテーブルの要素を増減させていますが、型付き配列でもどちらもまったく同じように動作します。違いは、Luauが挿入する値をチェックするようになったことです。{number}配列に文字列を追加すると、実行時に戸惑ったプレイヤーが気づくのではなく、入力中に警告されます。
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- 末尾に追加する
table.insert(queue, 1, "help") -- 残りの要素を後ろにずらして位置 1 に挿入する
local last = table.remove(queue) -- 最後の要素を削除し、さらにその要素を返すtable.remove(t)は最後の要素を取り除いて返します。table.remove(t, 1)は最初の要素を取り除き、残りを詰めます。配列の型は{string}なので、Luauは戻り値が文字列だと認識します。
読み取りは通常のLuaと同じように寛容です。値のないインデックス、queue[0]、queue[-1]、または#queueを超えるインデックスを読み取っても、何も起こらずnilと評価されます。エラーは発生しないため、値が存在するか確かでない場合は、使う前にnilかどうかを確認してください。
チャレンジ
簡単型付きの動作リストを増やしたり縮めたりしましょう。
local moves: {string} = {"jump", "run"}を宣言します。table.insertで"duck"を追加し、次に位置1に"crawl"を挿入します。table.remove(moves)をlocal removedに格納し、次にremoved、#moves、moves[1]、moves[10]を出力します。
Run Codeを押すと、出力にduck、3、crawl、nilが表示されます。
自分で試してみよう
-- 1) moves: {string} を宣言し、"jump" と "run" を入れる
-- 2) "duck" を末尾に追加し、位置 1 に "crawl" を挿入する
-- 3) 最後の要素を削除し、4つの値を出力する
Luau入門のすべてのレッスン
自分で練習してみよう: Luauオンラインコンパイラ