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"

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