上一周的《14 健康操作:饮水记录》这一节,我们介绍了一个新的操作——「词典」:
加上之前早已介绍过的「列表」和「菜单」,捷径中 3 种可以提供选项的操作我们就全介绍过了。
那么,为什么同样是提供选项,却有三种不同的操作?它们 3 个的区别是什么?使用的场景又是什么?我们这一节,就是要搞懂这些问题。
区别在于数据的传输方式
如标题已经剧透的那样,这三者的最大区别是传输数据的方式。而三者传输数据的方式的区别可以简单总结为:
- 列表:选择什么,传输什么
- 词典:选择键,传输值
- 菜单:选择菜单,传输菜单里的操作结果
接下来我们来结合具体的实验,看看这到底是什么意思。
列表:选择什么,传输什么
列表的特点是「选择什么,传输什么」。
我们在捷径里放一个「列表」操作,里面设 3 个选项,分别是1、2、3
。在菜单的后面,我们接上「从列表中选择」:
这时候我们运行捷径,会弹出列表,然后我们选择第一个项目 1
,就会发现,捷径最后输出的结果也是 1
。
这时候,我们再在下面加一个「计算」的操作,里面的运算设置为「+1」:
这时候再运行捷径,就会发现,得出的结果是 2
。
这个实验足以说明列表的运行方式:
- 我们选择 1,传出的数据就是 1
- 我们在传出数据那一步后面再 +1,最终的结果如我们预料,是 2
词典:选择键,传输值
词典的特点是「选择键,传输值」。我们同样用实验来验证一下这个说法。
首先我们放一个「词典」操作,添加 3 项。左边「键」的那一列,我们分别记入 A、B、C
;右边「值」的那一列,我们分别记入 1、2、3
。在之后仍然接上「从列表中选择」:
接下来,我们运行捷径,我们会发现看到的选项本身就和列表不一样,每个选项里有两行内容,上面一行是「键」,下面一行是「值」。但是如果在「“今日”视图」运行这个捷径,可就看不到下面的「值」了,只能看到「键」
我们选择第一个选项「A」,将会出现的结果可以预料到,是「1」。
随后我们再接一个「计算」,同样把里面的运算设为「+1」,再运行这个捷径,在有选项的时候选择「A」,得出的结果就会是「2」:
这就说明,我们选择的那个「A」它不会作为数据传出来,但是它有一个对应的「值」,这个值会作为结果传出来。而这个不会传出来的「键」,它有很好的提示作用。比如说我们要查一个电影,我们其实要的是电影的链接,但是我们更熟悉,更想看到的,是这个电影的名字。所以这时候,我们如果可以做到,把「键」是为电影的名字,把「键」对应的「值」设为链接,这个捷径将会直观许多。
菜单:选择菜单,传输菜单里的操作结果
最后,菜单的特点是,「选择菜单,传输菜单里的操作的结果」。
菜单本身是什么也不传输的。如果我们把菜单做的像列表一样,添加 3 项,每一项分别设为 A、B、C
,再运行一下捷径。我们就会发现这个捷径没有输出东西:
那么菜单输出什么呢?菜单输出的是它内部所有操作运行后的结果。还是拿最简单的例子来看。我们像这样做一个菜单:
它有 3 项,每一项分别是 A、B、C
,在每个菜单下面,我们放进「文本」操作,文本里分别写入 1、2、3
。这时候再运行捷径,就会发现做到的效果和「词典」一样——我们选择了「A」,但获得的是「1」:
选择「A」获取「1」
这时候,我们再在「结束菜单」后加上「计算」,计算的还是「+1」。再运行捷径,选择「A」,就会发现最后的结果是「2」。
这就是菜单的特点——你选择的那个按钮,只有纯指示性的作用,按钮本身不会传递数据。
菜单不能阻隔数据的特性
事实上,菜单的按钮不仅不能传递数据,它也不能阻隔数据。对于传入传出的数据,它好像是「透明」的,有一种「数据可穿透」的效果。
这么说恐怕很难明白,我们仍然来做个实验:
- 我们先用此前教过的方法来获取 100 张最近的照片
- 然后直接接「菜单」操作
- 「菜单」有两个选项——「要截图」和「不要截图」
- 这两个选项下各放一个「过滤图像」的操作
- 两个「过滤图像」内的条件,一个设为「是屏幕截图」,另一个设为「不是屏幕截图」
然后我们运行这个捷径,分别选择两个选项,就会看到不同的结果。
这为什么能说明「菜单」的「数据可穿透」这个性质呢?因为在这个实验中,「菜单」很明显是接收了前面获取的 100 张图片,并且传递到了下面的「过滤图像」这个操作里。如果「菜单」可以阻隔数据,那么这个捷径就不能产生任何结果了。
其实「如果」这个操作也有这个「数据可穿透」的特性,所以我们在做条件判断的时候,在「如果」的前一步会放进「计数」,而一旦这样,「如果」的下面一定要接「获取变量」。因为如果不使用「获取变量」,那么「如果」传下去的数据,就是「计数」的结果,也就是数字,而不会是我们本来要的图片、文字等数据。
如何看待三者之间的关系
在了解完三者的区别之后,我们来简单梳理一下三者的关系。
根据我的理解,三者的关系可以是「列表小于词典,词典小于菜单」:
列表 < 词典 < 菜单
这里单纯地用大于小于不大贴切,但是意象传递得比较到位,我还是分别来说明。
列表小于词典
为什么说「列表」小于「词典」呢?文首的那张图片很足以说明问题:
「词典」可以认为是有对应关系的两组列表,其中一组是我们可以看到的选项,另一组是可以传下去的数据。这说明,「列表」的功能完全可以被「词典」所代替,而且「词典」的表达还更丰富,指示性更强。所以如果你不想看冷冰冰的数字,而是想看比较温暖的「人话版」提示,就应该用「词典」。
菜单大于词典
「菜单」和「词典」的比较,就不大公平了。
从概念上看,「菜单」中间可以直接放操作,直接包住「词典」,反过来可行不通。不过也因为这样,「菜单」是提供选项功能的操作里的老大哥。
从具体操作来看,「菜单」也能够很轻松地实现「词典」的功能,还是拿饮水记录的例子,这是用「词典」做的选项:
用「菜单」的话可以这样实现:
但是很明显,「菜单」在这里把事情搞得有点麻烦。这也说明,每一种操作它都有它的适用范围,即便是针对一个共同的目的,也并不是说用最高大全的那个方式替代一些针对性的方案就会最理想。如果你总是希望有一个 All in one 的工具,1 个银弹,靠它解决自己所有需求的话,可以想一想「菜单」、「词典」和「列表」之间的关系。
结语
以上就是「列表」、「词典」和「菜单」这三个操作,在提供选项时的区别和关系。各位在使用捷径的时候,要对各个操作里这些细小的性质足够敏感,并想办法进行归类认识。这个习惯能够加深、从而加固你对事务间联系的认识,往小了说可以让你做出别人眼中看起来不可能的捷径,往大了说则对一个人的学习力和洞察力的提高很有帮助。