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