関数:項目の追加
CoddyのLuaジャーニー「Luau入門」セクションの一部 — レッスン 64/73。
チャレンジ
簡単前回の lesson のプロジェクトを拡張します(Item<T> type はそのまま保持してください)。
id = #inventory + 1でitemをcreateし、table.insertでinventoryにinsertして、それを返すジェネリックfunctionaddItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>を作成します。- 型付けされた空の配列
weapons(型は{Item<{damage: number}>})をcreateします。 addItemを使用して{damage = 25}の"Iron Sword"を追加し、結果をswordに保持します。addItemを使用して{damage = 40}の"Fire Axe"を追加し、結果をaxeに保持します。
その後、それぞれ新しい行に出力(print)します:
#weaponssword.idsword.nameaxe.idweapons[2].data.damage
自分で試してみよう
-- 前のレッスンから
type Item<T> = {
id: number,
name: string,
data: T,
}
-- ここにコードを書く
-- 1) addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
-- 2) weapons配列を作成し、Iron SwordとFire Axeを追加する
-- 3) 要求された5つの値を出力する
Luau入門のすべてのレッスン
7プロジェクト:Typed Task Manager
プロジェクト:タスクの型定義タスクを追加する関数