table.unpack
CoddyのLuaジャーニー「Luau入門」セクションの一部。レッスン 21/80。
配列に値が入っていても、それらを個別の値として使いたいことがあります。たとえば、各要素をそれぞれ独立した引数として渡す場合です。そんなときに使うのがtable.unpackです。配列の要素をすべて展開して返します。
local scores: {number} = {85, 92, 78}
print(table.unpack(scores)) -- 85 92 78 (1行)
print(math.max(table.unpack(scores))) -- 92printは3つの引数を受け取るため、タブで区切って1行に出力します。math.maxが必要とするのは配列ではなく個別の数値なので、展開することでこの呼び出しが機能します。
table.unpackは配列を変更せずに読み取ります。逆に、...を使って任意の数の引数を受け取る関数については、次の章の「可変長引数関数」のレッスンで学びます。
チャレンジ
簡単スコアの配列を個別の値に展開します。
local scores: {number} = {64, 88, 71}を宣言します。table.unpack(scores)を出力します。math.max(table.unpack(scores))を出力します。
コードを実行を押します。出力には、1行目に64 88 71、その次に88が表示されます。
自分で試してみよう
-- 1) scores: {number} = {64, 88, 71} を宣言する
-- 2) 展開した scores を出力し、次にその math.max を出力する
Luau入門のすべてのレッスン
自分で練習してみよう: Luauオンラインコンパイラ