Menu
Coddy logo textTech

マップの宣言とアクセス

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

型付きマップの宣言は、これまで書いてきたテーブルコンストラクタと同じように見えます。アノテーションによってキーと値の型を固定するだけです。

local stock: {[string]: number} = {apples = 12, bananas = 5}

読み取りと書き込みには、おなじみのインデックス操作を使用します。有効な識別子であるキーの場合、stock.applesstock["apples"] は同じエントリーにアクセスします。ブラケット形式は、スペースを含むキーや変数に保持されているキーも処理できます。

stock["cherries"] = 20   -- 新しいエントリを追加
stock.bananas = 8        -- 既存のものを更新
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil — 一度も設定されていない

型チェッカーはすべての書き込みを監視します。"many" は数値ではないため stock["apples"] = "many" はエラーになり、キーは文字列でなければならないためキーとして数値を使用することもエラーになります。

エントリーを削除するには、そのキーに nil を代入します。stock["bananas"] = nil によって完全に削除され、その後の読み取りでは nil が返されます。独立した削除関数はありません。これが標準的な Lua の慣習であり、マップ上でも正しく型チェックされます。

challenge icon

チャレンジ

簡単

型付きの map である stock: {[string]: number} を作成し、apples = 12 および bananas = 5 で初期化します。次に:

  1. 20 を持つ新しい entry である cherriesadd します
  2. bananas8update します

最後に、以下をそれぞれ別の行に出力(print)します:

  1. applesstock
  2. bananasstock
  3. cherriesstock
  4. plumsstock — 設定したことがない key

自分で試してみよう

-- ここにコードを書いてください
-- 1) stock: {[string]: number} を apples = 12, bananas = 5 で宣言する
-- 2) cherries = 20 を追加し、bananas を 8 に更新する
-- 3) apples、bananas、cherries、それから plums を出力する
quiz icon腕試し

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

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