nil によるペアの削除
CoddyのLuaジャーニー「Fundamentals」セクションの一部 — レッスン 69/90。
キーに nil を代入すると、Luaはそのキーと値のペアをテーブルから実質的に削除します:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- 難易度の設定を削除します
settings.difficulty = nil
-- これで、テーブル内に難易度のキーは存在しなくなりますキーと値のペアを削除するには、ドット記法またはブラケット記法のいずれかを使用できます。settings.difficulty = nil と settings["difficulty"] = nil のどちらも、まったく同じように動作します。
キーに nil を代入すると、そのキーはテーブルから完全に消滅します。後でそのキーにアクセスしようとすると、まるで最初からそのキーが存在しなかったかのように、結果として nil が返されます。
チャレンジ
簡単辞書形式のテーブルから不要な設定を削除する方法を示す、ゲーム設定システムを作成してください。まず、gameConfig という名前のテーブルを作成し、以下のキーと値のペアを割り当てます。["graphics"] には文字列の "high" を、["sound"] には数値の 75 を、["difficulty"] には文字列の "normal" を、そして ["debug"] には真偽値の true を割り当ててください。
初期設定テーブルを作成した後、ドット記法を使用して debug 設定に nil を代入することで、その設定を削除してください。その後、残っている sound 設定をプリントして、テーブルに他の値がまだ保持されていることを確認してください。
チートシート
テーブルからキーと値のペアを削除するには、そのキーに nil を代入します:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- difficulty 設定を削除する
settings.difficulty = nilドット記法またはブラケット記法のいずれかを使用できます:
settings.difficulty = nil
settings["difficulty"] = nilnil を代入すると、そのキーはテーブルから完全に消滅します。そのキーにアクセスすると nil が返されます。
自分で試してみよう
-- TODO: ここにコードを記述してください
-- 必要なキーと値のペアを使用して gameConfig テーブルを作成します
-- ドット記法を使用して debug 設定を削除します
-- sound 設定を表示しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。