用名牌找的盒子:键和值
数组是按位置号取出的(第8课)。 但有时你想用「名字」找,而不是号码。 查朋友的电话时, 你想的是「小民」,不是「第47个联系人」。 现在来看看,怎么用名牌一下子取出来。
用名牌,不用号码
第8课的数组,是排成一行的盒子。
1号、2号、3号……按位置号取出。
可在字典里查词时,
你不会去想「第325个词」。
你只是翻到「苹果」,意思就在那儿。
键和值,就是这样用名牌找的。
选一个名字试试。不用知道位置号,那个值就直接出来。
不用数位置。
只要知道名字,就直接够到那个值。
那么,这「名牌和内容」
到底是怎么配成一对的呢?
配成一对:键和值
每一格,总是两个成一对。
名牌(键)和里面的内容(值)。
像「苹果」(键) → 「一种水果」(值),
「小民」(键) → 「010-1234」(值)。
叫出键,配对的值就跟着出来。
把键连到值上试试。一绑定,就成了「键 → 值」一对。
键是告诉你「在哪儿找」的名字,
值是「真正装着的东西」。
把这些对攒一大堆,就是字典。
可对一多,怎么才能快快找到想要的那个呢?
不用排着队找
就算有一千个值,
键和值也不会从头一个个翻。
它看着名牌,直奔那一格。
数组里不知道位置,就得从1号翻起,
而有了键,一下子就到。这就是快的秘诀。
左边一个个翻,右边凭名牌一下子到。点一下比比看。
只要知道名字,就不绕远路。
所以键和值,特别擅长「从很多东西里
快快取出一个」。
最后,名牌还有一条必须遵守的规则。
名牌不重复
规则只有一条。
同一个名牌,只能用一次。
新名牌想加多少都行,
但要是往已有的名牌里放新值,
旧值就会被擦掉,换成新的。
新名牌会多出一格;重复用同一名牌,旧值就换成新值。
因为名牌不重复,
叫「小民」就不会搞混。
总是正好返回一个值。
这一个简单的对,其实藏在所有地方。
无处不在的对,以及更远处
字典(词→意思)、设置(项→值)、
通讯录(名字→号码)、游戏背包(物品→数量)。
全是键和值。
这是整理数据最常见的方法之一。
下一课,我们把这些名牌打包成一团,
当作「一个东西」来对待。
字典、设置、通讯录、背包。点着看。全是同样的「键 → 值」。
继排成一行的数组(第8课)之后,
你又拿到了用名牌找的键和值。
现在,按号码、按名字都能处理数据了。
下一课,我们把好几个名牌装进一个盒子,
打包成「一个东西」:对象。