修改字典
本课属于 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"
在第一行打印保存的名称,在第二行打印字典。对于输入 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 在线编译器