Menu
Coddy logo textTech

ペアの追加と変更

CoddyのLuaジャーニー「基礎」セクションの一部。レッスン 68/90。

新しいキーと値のpairを追加したり、既存のものを変更したりするには、ドットnotationまたはブラケットnotationのいずれかで代入演算子を使うだけです。

local player = {
    ["name"] = "Alex",
    ["level"] = 5
}

-- 新しいキーと値のペアを追加
player.gold = 100

-- 既存の値を変更
player.level = 6

このアプローチの優れた点は、Lua が追加と変更を区別しないことです。"gold"という key が table に存在しない場合、値 100 で作成されます。"level"という key がすでに存在する場合、その値は 6 に更新されます。

これらの操作には、dot notation または bracket notation のいずれかを使用できます。

-- これらはどちらも同じように動作します
player.class = "Warrior"
player["weapon"] = "Sword"
challenge icon

チャレンジ

簡単

新しい属性の追加とexistingな属性の変更のBothを示すcharacter progression systemを作成します。まず、次のinitial key-value pairsを持つheroという名前のtableを作成します。["name"]には文字列"Warrior"を、["level"]には数値5を、["health"]には数値120を代入します。

initial character tableを作成した後、次の変更を行います。まず、dot notationをusingして、値"Paladin"を持つ新しいkey-value pair ["class"]を追加します。次に、bracket notationをusingして、existingなlevelの値を7にmodifyします。最後に、bracket notationをusingして、値80を持つ別の新しいkey-value pair ["mana"]を追加します。

すべての変更が完了したら、変更を確認するためにheroのclassとupdated levelをprintします。

自分で試してみよう

-- 初期のheroテーブルを作成する
local hero = {
    -- TODO: ここに初期のキーと値のペアを追加する
}

-- TODO: ドット記法とブラケット記法を使って新しい属性を追加し、既存のものを変更する

-- heroのclassと更新されたlevelを出力する
print(hero.class)
print(hero.level)
quiz icon腕試し

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

基礎のすべてのレッスン

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