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. Ropepairs()との主な違いは、ipairs()はnil値を見つけると、その後に要素が残っていても直ちに停止することです。
チャレンジ
簡単すべてのタスクを位置番号付きで一覧表示する整形済み文字列を返す関数 listTasks を作成してください。この関数は tasks テーブルを受け取ります。
ipairs() を使ってタスクを順番に反復処理し、各行にタスク番号、その後にタスク名を number. task の形式で表示する文字列を作成してください。各タスクは別々の行に表示します。
パラメーター:
tasks(テーブル): タスク名を文字列として格納したリスト形式のテーブル
戻り値: 各タスクを別々の行に番号付きで表示した文字列。形式:
1. task1
2. task2
3. task3自分で試してみよう
function listTasks(tasks)
-- ここにコードを書いてください
end
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとプログラムの流れのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ