Menu
Coddy logo textTech

ipairs() を使ったイテレーション

CoddyのLuaジャーニー「ロジックと制御フロー」セクションの一部。レッスン 2/54。

pairs()はあらゆるテーブル構造で機能しますが、Luaにはリスト形式のテーブル専用に設計されたipairs()という特殊な関数が用意されています。この関数はテーブルを順番に反復処理し、インデックス1から開始して、nil値に遭遇するまで続けます。

ipairs()の構文はpairs()と似ています:

for index, value in ipairs(myList) do
    -- ここで index と value を使用する
end

クエストアイテムのリストを使った例を見てみましょう:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

出力:

1. Map
2. Compass
3. Torch
4. Rope

pairs()との主な違いは、ipairs()nil値を見つけると、その後にさらに要素があっても直ちに停止することです。

challenge icon

チャレンジ

簡単

listTasks関数を作成してください。この関数はtasksテーブルを受け取り、すべてのtaskを位置番号付きで一覧表示する整形済みの文字列を返します。

ipairs()を使用してtasksを順番に反復処理し、各行にtask番号、その後にtask名をnumber. taskの形式で示す文字列を作成してください。各taskは別々の行に配置します。

パラメーター:

  • tasks (table): task名を文字列として含むリスト形式のテーブル

戻り値: 各taskを別々の行に番号付きで示す文字列。形式: 

1. task1
2. task2
3. task3

自分で試してみよう

function listTasks(tasks)
    -- ここにコードを書いてください
end
quiz icon腕試し

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

ロジックと制御フローのすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ