Menu
Coddy logo textTech

テーブルの作成と unpack()

CoddyのLuaジャーニー「Logic & Flow」セクションの一部 — レッスン 6/54。

Luaは、複数の値を扱うための補完的な手法のペアを提供します:テーブル構築table.unpack()です。これらは、柔軟な引数処理を必要とする関数を扱う際に特に便利です。

波括弧を使用したテーブルコンストラクタ構文を使うことで、複数の値をリスト形式のテーブルに格納できます。これにより、すべての値が単一のテーブル構造にまとめられます。

local args = {10, 20, 30}
print(args[1])  -- 出力: 10
print(#args)    -- 出力: 3

table.unpack() 関数はその逆のことを行います。リスト形式のテーブルを受け取り、そのすべての要素を個別の値として返します。これにより、テーブルの内容を個別の引数として関数に渡すことができます。

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- 出力: 5    10    15

これらのテクニックはシームレスに連携します。値をテーブルに収集し、そのテーブルを操作してから、再び個々の値にアンパック(展開)することができます。

challenge icon

チャレンジ

簡単

3つの数値 ab、および c を受け取り、テーブル構築と table.unpack() を使用してそれらの合計を返す関数 forwardArguments を作成してください。

{a, b, c} 構文を使用して3つの引数を含むテーブルを作成し、それらをアンパックして合計を計算する別の関数に渡します。

ロジック:

  • {a, b, c} を使用して、3つの引数すべてを含むテーブルを作成します
  • 3つのパラメータを受け取り、その合計を返す sum という別の関数を作成します
  • table.unpack() を使用して、テーブルの値を sum 関数に渡します
  • sum 関数からの結果を返します

パラメータ:

  • a (number): 1番目の数値
  • b (number): 2番目の数値
  • c (number): 3番目の数値

戻り値: 3つの数値の合計 (number)

チートシート

テーブルコンストラクタの構文 {a, b, c, ...} はリスト形式のテーブルを作成します。要素数を取得するには # を使用します。

local args = {10, 20, 30}
print(args[1])  -- 出力: 10
print(#args)    -- 出力: 3

table.unpack() はリスト形式のテーブルを受け取り、そのすべての要素を個別の値として返します。これにより、テーブルの内容を関数の個別の引数として渡すことができます。

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- 出力: 5    10    15

自分で試してみよう

function forwardArguments(a, b, c)
    -- 合計を計算する別の関数を作成する

    -- 3つの引数すべてを含むテーブルを作成する

    -- テーブルをアンパックして、値を sum 関数に渡す

end
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Logic & Flowのすべてのレッスン