384人加入学习
(0人评价)
GDScript初学者入门教程-基于Godot和AI教学

使用Godot4.6.2 制作完成于2026.5.13

价格 免费

### 10. 字典 Dictionary

> 配套示例:`examples/10_dictionary.gd`

字典是键值对集合,相当于其他语言的 map / object。key-value

```gdscript
var player := {
    "name": "Alice",
    "level": 10,
    "hp": 100,
}

# 上述player是一个字典,两个数据用:来分辨键(key)和值(value),比如"name": "Alice" 键就是name,值就是Alice,每对键值用,分割

 

# 访问(两种语法都行) 访问=读取
player["name"]       # "Alice"
player.level         # 10(key 是合法标识符时才能这样)

# 增 / 改
player["mp"] = 50
player["hp"] = 80

# 删
player.erase("level")

# 查
player.has("hp")
player.size()

# 遍历
for key in player:
    print(key, " = ", player[key])
```

字典也是按引用传递。

---
 

## 第 10 节:字典 Dictionary
##
## 演示 Dictionary(键值对)的常用操作。

extends Node

enum STATE{IDLE,RUN}  #这里用枚举来举例使用数组


func _ready() -> void:
    # 创建
    var player := {
        "name": "Alice",
        "level": 10,
        "hp": 100,
    }
    #var player :Dictionary = {
        #"name": "Alice",
        #"level": 10,
        #"hp": 100,
    #}

    # 访问
    print("名字:", player["name"])
    print("等级:", player.level)         # 也可以用点语法(key 是合法标识符时)

    # 修改
    player["hp"] = 80
    print("修改后血量:", player["hp"])

    # 新增
    player["mp"] = 50
    print("新增魔法值后:", player)

    # 删除
    player.erase("level")
    print("删除等级后:", player)

    # 查询
    print("有 hp 吗:", player.has("hp"))
    print("一共有 ", player.size(), " 个字段")

    # 遍历 key
    print("--- 遍历 keys ---")
    for key in player.keys():
        print(key, " = ", player[key])

    # 遍历 value
    print("--- 遍历 values ---")
    for v in player.values():
        print("值:", v)

    # 简写:直接遍历 dict 等价于遍历 keys
    print("--- 直接 for in dict ---")
    for key in player:
        print(key, " -> ", player[key])
    
    var v1:Array = [1,2,3,4,5,2,3]
    print(v1)
    
    var v2:Dictionary ={
        "name":"siki",
        "name2":"siki"
    }
    
# 注意:字典中的键 不可以相同或者重复,否则报错,但数组可以有相同的或者重复的值

[展开全文]

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(1)
视频(35)