Menu
CoddyTech

辞書の変更

CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 79/92。

値を変更するには、角括弧を使ってキーに値を代入します。キーが新しい場合、そのペアは辞書の末尾に追加されます:

var player := {"name": "Mia", "hp": 100}
player["hp"] = 80 # "hp"の値を更新する
player["level"] = 2 # 新しいペアを追加する
print(player)

出力は次のとおりです:

{ "name": "Mia", "hp": 80, "level": 2 }

変数のように、古い値を基に値を更新することもできます:

player["level"] += 1 # level は現在 3 です

ペアを削除するには、そのキーを指定してerase()を呼び出します。キーが削除された場合はtrue、キーが存在しなかった場合はfalseを返します。キーが見つからなくてもエラーにはなりません:

print(player.erase("hp")) # true
print(player.erase("hp")) # false
print(player) # { "name": "Mia", "level": 3 }

erase()は削除した値を返しません。必要な場合は、キーを削除する前に読み取ってください。

challenge icon

チャレンジ

簡単

プログラムは入力を4行読み取ります:

  1. プレイヤー名
  2. 開始レベル(整数)
  3. 新しいレベル(整数)
  4. key:value の形式で記述された新しいペア。例:guild:Falcons

辞書 player は、"name" と "level" を含む状態です。次に:

  1. "level" を新しいレベルに更新する
  2. 4番目の入力を : で分割し、そのペアを辞書に追加する(値はテキストのままにする)
  3. "name" の値を変数に保存し、その後キー "name" を削除する

保存した名前を1行目に、辞書を2行目に出力します。入力が Mia、4、5、guild:Falcons の場合、出力は次のとおりです:

Mia
{ "level": 5, "guild": "Falcons" }

自分で試してみよう

extends Node

func _ready():
	var player_name := OS.read_string_from_stdin()
	var level := int(OS.read_string_from_stdin())
	var new_level := int(OS.read_string_from_stdin())
	var pair := OS.read_string_from_stdin()

	var player := {"name": player_name, "level": level}

	# 1. レベルを更新する
	# 2. 4番目の入力からペアを追加する
	# 3. 名前を保存してから削除する
	# 4. 保存した名前と辞書を出力する
	pass
quiz icon腕試し

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

基礎のすべてのレッスン

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