値へのアクセス
CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 78/92。
値を読み取るには、辞書名の後にキーを角括弧で囲んで指定します。
var player := {"name": "Mia", "hp": 100}
print(player["name"]) # Mia
print(player["hp"]) # 100キーは大文字も含めて完全に一致している必要があります。"Name" と "name" は異なるキーです。
辞書に存在しないキーを読み取るとエラーになり、プログラムはその行で停止します。
print(player["mana"]) # エラー: キー "mana" は存在しませんキーが存在しない可能性がある場合は、get()を使います。キーの値を返し、キーが存在しない場合は、2つ目の引数として渡したデフォルト値を返します。
print(player.get("hp", 0)) # 100
print(player.get("mana", 0)) # 0デフォルト値を指定しない場合、get()はキーが存在しないときにnullを返し、print()はそれを<null>として表示します。
チャレンジ
簡単プログラムは入力を4行読み取ります:
- アイテム名
- 価格(小数)
- 在庫数(整数)
- 検索するキー
次のペアを含む、itemという名前の辞書を作成します:
"name"にアイテム名を対応付ける"price"に価格を対応付ける"stock"に在庫数を対応付ける
次に、4番目の入力のキーの値を出力します。キーが辞書にない場合は、Not foundを出力します。
入力がPotion、2.5、15、priceの場合、出力は次のとおりです:
2.5入力がBow、30.75、7、colorの場合、出力は次のとおりです:
Not found自分で試してみよう
extends Node
func _ready():
var item_name := OS.read_string_from_stdin()
var price := float(OS.read_string_from_stdin())
var stock := int(OS.read_string_from_stdin())
var key := OS.read_string_from_stdin()
# ここでアイテムの辞書を作成する
# key の値、または Not found を出力する
pass
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ