我们将告别单纯的数字,
学会使用“带标签的资料袋”!
像老师大喊:
“走到 10, 20 这个格子!”
(需要两个数字)
像老师给你一张“地址卡”:
“拿着这张卡走过去。”
(需要一个对象/字典)
# 旧方法 (2个参数) hero.moveXY(10, 20) # 新方法 (1个对象参数) # pender.pos 是一张“地址卡” hero.move(pender.pos)
move(pos) 更加高级哦!
想象一个“有标签的抽屉柜”。
player = { "name": "Hero", "hp": 100, "gold": 20 }
有时候我们没有现成的 pos,需要自己手写一个!
这就是字典字面量 (Object Literal)。
while hero.pos.x < 20: # 手写一个字典作为参数 # {'x': 20, 'y': 35} hero.move({'x': 20, 'y': 35})
我们用点 (Dot Notation) 来打开抽屉。
hero.pos.x
这句话的意思是:
hero (英雄)pos (位置抽屉柜)x (横坐标抽屉) 看看里面的数字这一关把之前学的“最值算法”和“字典”结合起来了!
# 1. 数组 + 函数:找到最近的硬币 coin = hero.findNearest(hero.findItems()) # 2. 字典:使用硬币自带的“地址卡” hero.move(coin.pos) # 3. 字典字面量:手动指定位置撤退 hero.move({"x": 15, "y": 38})
| 特性 | List / Array (列表) | Dict / Object (字典) |
|---|---|---|
| 像什么 | 一排排队的同学 🚶🚶🚶 | 带标签的资料袋 🗂️ |
| 特点 | 有顺序 (0, 1, 2...) | 无顺序,有名字 (x, y) |
| 怎么查 | 用编号: gems[0] |
用名字: pos.x |
{"x": 20, "y": 35} 就是地图上的一个点!