Skip to content
GQ数据类型

 

整数型(INT)-数值型

intinteger(整数) 的缩写,属于数值型,用于表示离散数值

1就是一个典型的整数,但:

1.5(小数)

1/2(分数)

π,√2(无理数)

"123"(字符串)

这些都不是整数

数值型可以做基本运算,当有float参与时,结果是float

数值型可以通过toString()转换为字符串,toFloat()转换为浮点型,toInt()转换为整数型,当解析失败时返回null

浮点型(FLOAT)-数值型

floatfloating-point number(浮点数) 的缩写,用于表示带小数的数值

float具有较高的精度,但是请尽可能不要直接对flaot进行判别运算

3.14就是一个典型的小数,但:

“3.14”(字符串)

不是小数

数值型可以做基本运算,当有float参与时,结果是float

数值型可以通过toString()转换为字符串,toFloat()转换为浮点型,toInt()转换为整数型,当转换失败时返回null

布尔型(BOOL)

bool型是一种只能表示两种状态的数据类型,包括truefalse(即真和假)

bool经常用于表示:

1.条件是否成立

2.状态是否满足

3.行为是否允许

bool还经常用于判别式(或条件表达式,有关判别式的说明请到IF命令文档查看)的计算

字符串(STRING)

字符串用于表示文本内容,字符串只能使用双引号,不支持单引号(GQ编辑器会强制转换)

即使是使用字符,也要用字符串形式,即单长度字符串,字符串可以通过:

len()获取长度

toInt()/toFloat()尝试转换为数值

split()来分割字符串

[1:3]来截取字符串(左闭右开)

通过“abc” + “def”来拼接字符串

空值(NULL)

null表示为空值

当数值不存在时,数组越界,字典key不存在时返回的值

数组(ARRAY)

数组是一种可以存放多个值的数据类型,包括所有GQ数据类型

数组由元素组成,是一组有序序列,使用"["与"]"组合,元素之间使用","分隔

例如:[1,2,3]为包含数值1,2,3三个元素的数组

数组可以包括不同类型的元素,例如[1,"hi","world",3.14,true]这样的数组也是合法的

在gqexec中创建数组

testArray = [1,3,4,5,6,7,8,9]

(如上命令实际是声明一个临时变量并赋值,这个语法会在GQ变量部分详细说明)

数组创建完成后可以对其内容进行 增删查改

查询/调用:

使用 变量名[索引值] 的形式取用数组元素,索引值从0开始步长为1依次递增

当我们想要获取testArray的第一个值(也就是1)时:testArray[0]

当想要获取第4个元素(也就是5)时:testArray[3]

如果想要获取最后一个元素(9),也可以使用负数索引来倒序获取:testArray[-1]

如果想要获取第2到第3个值(3,4),则:testArray[1:3]

如果想要从第三个值开始,获取后两个值,则:testAttay[3..2]

增加元素:

数组可以使用append方法在尾部增加一个元素

假设a = [1,2]

我们执行 a.append(5)

那么此时 a就是[1,2,5]

删除元素:

数组元素删除就要分情况讨论了

假设array = [1,2,3,4,5]

1.删除元素不保留位置(即直接删除该元素)

直接删除元素有两种方法

a.使用removeat方法可以根据索引值删除对应位置元素:

[数组变量名].removeat([索引值])

array.removeat(2)

那么此时array的值为[1,2,4,5]

b.使用remove方法可以根据值来删除对应元素(只删除第一个与之匹配的元素):

[数组变量名].remove([值])

假设array = [1,2,4,5]

array.remove(4)

那么此时的array的值就变成了[1,2,5]

修改元素:

修改元素与取用十分相似,只需要选取元素然后赋值即可

假设array = [2,4,6,8]

执行array[1] = 3

那么array就变成了[2,3,6,8]

遍历数组:

这个功能与循环有交集,GQ引擎没有标准的循环方案,循环就是通过便利一个数组来实现的

//遍历array数组
for (args.i in array){
	//执行你的逻辑
}

注意:该部分涉及FOR命令

如此一来,则可以递归取用array中的值(FOR命令部分会详细说明)

字典(DICT)

字典与数组同为复杂类型,其value可以存放所有GQ数据类型

字典由key(键)与value(值)共同组成,由"{","}"组合,并且用","分割键值对,并且一个key对应一个value,就像是门牌号

其中key必须为字符串,value可以是任意GQ数据类型,key与value之间使用":"来分割

{key1:value1,key2:value}

假设水果的数量为:

newDcit = {
		"apple":10,
		"orange":20,
		"melon":30
	}

增加:

字典增加元素十分好理解,直接

newDict["新key(注意要字符串)"] = 新的值

比如我们在newDict中添加Banana的数量为100:

newDict["banana"] = 100

如此以来,newDict就是:

{
	"apple":10,
	"orange":20,
	"melon":30,
	"banana":100
}

删除:

删除键值对只需要知道对应的key即可

字典变量.removekey("要删除的key(字符串形式)")

例如:

newDict = {
		"apple":10,
		"orange":20
	}

我们执行newDict.removekey("apple")

这样newDict就会变为:

{
	"orange":20
}

查询:

字典查询类似数组,也是变量名[key]这种形式

假设:

newDict = {
		"apple":10,
		"orange":20,
		"melon":30
	}

想要获取orange的数量,则:newDict["orange"]

修改:

字典的修改也类似数组,也是通过直接赋值的形式来修改

假设:

newDict = {
	"apple":10,
	"orange":20
}

我们执行:newDict["orange"] = 200

则字典newDict则变为:

{
	"apple":10,
	"orange":200
}

字典遍历:

//遍历newDict的key
for (args.i in newDict){
	//你的逻辑
}

由于作者懒所以只为Dict设置了遍历key的方法

注意:该部分涉及FOR命令,遍历会在FOR命令章节详细说明