字典方法
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 80 课,共 92 课。
字典有一些方法,可以告诉你其中包含什么。
keys() 按键值对的顺序返回包含所有键的数组,values() 按键值对的顺序返回包含所有值的数组:
var player := {"name": "Mia", "hp": 100, "level": 3}
print(player.keys()) # ["name", "hp", "level"]
print(player.values()) # ["Mia", 100, 3]has()用于检查键是否存在。in运算符执行相同的检查:
print(player.has("hp")) # true
print(player.has("mana")) # false
print("level" in player) # truesize() 返回键值对的数量,is_empty() 检查是否没有键值对:
print(player.size()) # 3
print(player.is_empty()) # false
var bag := {}
print(bag.is_empty()) # truehas() 和 in 只检查键,不检查值:player.has("Mia") 的结果是 false。
挑战
简单程序会读取两行输入:第一行是用逗号分隔的键值对列表,格式为 key:value;第二行是要检查的键。给定的代码已经用第一行的内容填充了字典 info。
按以下顺序输出:
- 每个键,每行一个
---- 每个值,每行一个
---- 键值对的数量
---true或false:字典是否为空---true或false:第二行输入中的键是否存在
对于输入 name:Mia,hp:100,class:Mage 和 hp,输出为:
name
hp
class
---
Mia
100
Mage
---
3
---
false
---
true亲手试试
extends Node
func _ready():
var text := OS.read_string_from_stdin()
var key := OS.read_string_from_stdin()
var info := {}
for pair in text.split(","):
var parts := pair.split(":")
info[parts[0]] = parts[1]
# 输出键、值、大小、is_empty 和 has(key)
# 各部分之间用 --- 分隔
pass
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器