Appearance
GQ数据类型
整数型(INT)-数值型
int 是 integer(整数) 的缩写,属于数值型,用于表示离散数值
1就是一个典型的整数,但:
1.5(小数)
1/2(分数)
π,√2(无理数)
"123"(字符串)
这些都不是整数
数值型可以做基本运算,当有float参与时,结果是float
数值型可以通过toString()转换为字符串,toFloat()转换为浮点型,toInt()转换为整数型,当解析失败时返回null
浮点型(FLOAT)-数值型
float 是 floating-point number(浮点数) 的缩写,用于表示带小数的数值
float具有较高的精度,但是请尽可能不要直接对flaot进行判别运算
3.14就是一个典型的小数,但:
“3.14”(字符串)
不是小数
数值型可以做基本运算,当有float参与时,结果是float
数值型可以通过toString()转换为字符串,toFloat()转换为浮点型,toInt()转换为整数型,当转换失败时返回null
布尔型(BOOL)
bool型是一种只能表示两种状态的数据类型,包括true和false(即真和假)
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命令章节详细说明