Menu
Coddy logo textTech

タスクのステータスを変更する関数

CoddyのLuaジャーニー「Luau入門」セクションの一部。レッスン 47/73。

challenge icon

チャレンジ

簡単

エディターには、前のレッスンで作成したTask型、tasks配列、addTaskがすでに含まれています。

completeTaskという名前のfunctionを作成し、2つのパラメーターを受け取るようにします。

  • 型が{Task}list
  • 型がnumberid

functionは次のように動作する必要があります。

  • ipairsを使ってlistをループし、idが一致するtaskを探す
  • 見つかった場合、そのtaskのdonetrueに設定してtrueを返す
  • 一致するtaskがない場合、falseを返す(戻り値の型はboolean

次に、1行ずつ次の内容をprintします。

  1. 最初のtaskのdoneフラグ(変更前)
  2. completeTask(tasks, 1)の結果
  3. 最初のtaskのdoneフラグ(変更後)
  4. completeTask(tasks, 99)の結果

自分で試してみよう

-- マネージャー内のすべてのタスクが従わなければならない形状
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- タスクリスト: Task形状の型付き配列
local tasks: {Task} = {
    {id = 1, title = "Learn Luau types", done = false},
    {id = 2, title = "Build a task manager", done = false},
    {id = 3, title = "Write tests", done = true},
}

-- 次の空きidで型付きタスクを作成して挿入する
local function addTask(list: {Task}, title: string): Task
    local newTask: Task = {
        id = #list + 1,
        title = title,
        done = false,
    }
    table.insert(list, newTask)
    return newTask
end

-- ここにコードを書く
-- 1) completeTask(list: {Task}, id: number): boolean を定義する
-- 2) tasks[1].done, completeTask(tasks, 1), tasks[1].done, を出力する
--    および completeTask(tasks, 99)

Luau入門のすべてのレッスン

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