跳到主要内容

预备知识

通过初级版教程的学习,相信您已经掌握了UiBot最基础的概念和最基本的操作,已经能够编写最简易的流程。本章将开始讲述UiBot中级版教程,您将学习到UB编程语言、数据处理、网络和系统、人工智能、命令扩展等强大而实用的功能。

在初级版的教程中,我们几乎无需接触到UiBot编程语言,也只接触到了几种简单的数据类型。而在中级版的教程中,我们将要接触到一些复合数据类型,例如数组和字典。本章先对这两种数据类型的概念做一个简单介绍,因为后续内容需要经常用到这两种复合数据类型。

数组

还是使用初级版教程中的例子,如下图所示。这是一张Excel表格,表格中的每一行是一条订单记录,每一列是订单的不同字段,包括订单号、顾客姓名、订单数量和销售额等。

虚构的Excel表格

前文已经讲过,可以分别使用不同类型的变量来保存这张Excel表格中的数据,例如:可以用字符串类型的变量来保存顾客姓名、可以用整数类型的变量来保存订单数量等。

那么如何同时保存多个数据呢?比如需要保存100条订单记录的订单号:一种方法是定义多个变量,例如使用No1、No2、No3、……、No100等100个变量来保存100个订单号,每个订单号使用一个变量来保存,这种方法比较简单直接,但是在数据量大时会非常繁琐;另一种比较聪明的方法,是利用一种叫做数组的复合类型。所谓“数组”,指的是可以用来储存多个数据的一组元素,这些元素可以用一个变量来表示。具体使用方法为:使用逗号来分隔每个元素,使用方括号包围起来,这样的一个整体,即构成一个“数组”,可以被放置在一个变量里面(而不需要多个变量)。如下所示:

数组变量 = [No1, No2, No3, No4]

同一个数组中的多个元素的值可以是任意类型,例如:元素的值是整数,就构成一个整数数组。同一个数组中的多个元素数据类型可以相同,也可以不同,例如:第一个元素是整数,第二个元素是字符串等。甚至,一个数组中的元素也可以是另外一个数组,这样就构成了一般意义上的多维数组。

通常我们只会用到二维数组,三维或者更多维的数组很少用到。下面是一个典型的二维数组,数组中包含了两个元素,其中每个元素又是一个数组,其中包含了六个字符串:

二维数组变量 = [[ "刘备", "关羽", "张飞", "赵云", "马超", "黄忠" ], 
[ "20K", "18K", "15K", "12K", "10K", "10K" ]]

那么如何定位和访问数组中的多个元素呢?这就需要用到下标了,所谓下标,指的是用于区分数组的各个元素的数字编号,通俗地说,数组下标就是指数组的第几个元素。不过数组的下标是从0开始编号的,例如数组变量的第1个元素如下:

数组变量[0]

在这个例子中,数组变量[0]指代的就是No1这个变量的值。如果要引用二维或多维数组的值,则采用多个下标:

二维数组变量[0][1]

其结果是上面二维数组中的“关羽”这个值。

字典

除了数组之外,还有一种叫做字典的数据类型,也可以实现一个变量保存多个数据。不过,数组的典型应用场景,主要是用来保存多个同样性质、同样类别的数据,例如100个订单号等;而字典的应用场景则更宽泛,主要是用来保存多个有关联、但是数据类型不尽相同的数据,例如一条订单的四个字段等。为了更好地访问这些不同数据类型的字段,字典不仅保存数据的值,还保存数据的名字。

字典类型变量的表示方法为:把多个元素用逗号分隔,然后再使用大括号来包围起来。其中每个元素必须包含一个 名字 和一个 ,名字和值之间用冒号分隔。如下所示:

{ 名字1:值1, 名字2:值2, 名字3:值3 }

其中 名字 只能是字符串, 可以是任意类型的表达式。如果您熟悉JavaScript或者JSON,会发现这种初始化方法和JSON的表示形式高度相似。

上述订单记录就可以这样表示:

字典变量 ={ "订单号":"3", "顾客姓名":"李鹏晨", "订单数量":6, "销售额":261.54 }

同样地,字典也可以利用下标作为索引来访问其中的元素,只不过,字典索引为名字,这是一个字符串。例如,得到上述字典变量的订单号的方法为:

字典变量["订单号"]

其结果是字典里面,名字为"订单号"的元素的值,也就是字符串"3"