辞書の変更
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()は削除した値を返しません。必要な場合は、キーを削除する前に読み取ってください。
チャレンジ
簡単プログラムは入力を4行読み取ります:
- プレイヤー名
- 開始レベル(整数)
- 新しいレベル(整数)
key:valueの形式で記述された新しいペア。例:guild:Falcons
辞書 player は、"name" と "level" を含む状態です。次に:
"level"を新しいレベルに更新する- 4番目の入力を
:で分割し、そのペアを辞書に追加する(値はテキストのままにする) "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
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ