Menu
CoddyTech

要素の追加と読み取り

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かどうかを確認してください。

challenge icon

チャレンジ

簡単

型付きの動作リストを増やしたり縮めたりしましょう。

  1. local moves: {string} = {"jump", "run"}を宣言します。
  2. table.insertで"duck"を追加し、次に位置1に"crawl"を挿入します。
  3. 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オンラインコンパイラ