Genscript文档-变量命令
1125
变量命令
概述
变量是可以变动的数值,在游戏中一般用来储存随游戏进程变动的数值,如金钱、生命值、时间等
变量有不同的类型,不同类型的变量有不同的作用
在Genscript中变量有四种类型:字符串、整数、浮点数和布尔
-
字符串:
字符串类型是Genscript中所有变量的默认类型,一般用来储存文本信息:你好
、1+1的结果是2
就算是数字,作为字符串变量的值也是文本而不是实际的数值 -
整数:
整数类型是数值变量的一种,一般用来储存是整数的游戏数值,比如金钱、物品数量、时间等
在Genscript中,整数值的范围是-9223372036854775808 ~ 9223372036854775807 (包含首尾),超过这个范围的整数类型值将会转变为浮点数类型 -
浮点数:
浮点数类型是数值变量的一种,也就是小数,一般用来储存数值极大且需要使用小数点或百分比的值,比如生命值、移动速度等
在Genscript中,浮点数的范围非常大,但在Genscript的环境下不会用到那么大的值 -
布尔:
布尔是一个特殊的变量类型,一般用于条件判断中,它只有两种值:false
和true
false
代表假,true
代表真
语法
详解
-[变量名]
该命令将声明变量,但不进行初始化。
如果不进行初始化,变量的默认类型是字符串,并且它的值是空的。
命名规范
不能声明同名的变量且变量名需遵循以下规范:
不能以下划线以外的符号开头:
+varname
(无效变量名)不能以数字开头:
1varname
(无效变量名)变量名只能以文字(英文字母、汉字等)或下划线开头:
_varname
,变量
(有效变量名)变量名除去开头只能包含文字(英文字母、汉字等),下划线和数字:
_变量1
,var_1
,チルノ9バカ
(有效变量名)变量名不能是用于表示其他命令的关键字和布尔值:
true
,False
,TuRe
,when
(无效变量名)关键字大小写敏感,一般是全小写,布尔值则不区分大小写
什么是初始化?
初始化是在创建变量时为其赋予一个初始值,这样可以明确变量的类型和用途。
-[变量名]=[值]
该命令将值赋给变量,可以用来修改变量的值,也可以进行变量声明并初始化,这个值也可以是一个变量
-a=0 |:声明变量a,并将其初始化为0
-b=a |:声明变量b,并将其初始化为a的值(0)
-c="c" |:声明变量c,并将其初始化为字符串c
-b=c |:将c的值赋给b,此时b的值将是字符串c
-@{b} |:输出b的值,控制台将会打印:c
变量可以自动转换类型
变量的声明不需要指定类型,变量在进行赋值时会自动转换其类型:
-string="string" |:声明字符串类型变量 -integer=0 |:声明整数类型变量 -floating_point=0.0 |:声明浮点数类型变量 -boolean=true |:声明布尔类型变量 -boolean=string |:将变量string的值赋给boolean,此时boolean的类型为字符串 -floating_point=integer |:将变量integer的值赋给floating_point,此时floating_point的类型为整数 -string=false |:将变量string的值更改为false,此时string的类型为布尔 -integer=1.0 |:将变量integer的值更改为1.0,此时integer的类型为浮点数
字符串赋值使用双引号不是必要的
对于变量赋值,Genscript有一个语法糖:
如果你尝试将不存在的变量赋值给另一个变量,那么另一个变量的值将会变成所指定的变量名,其类型是字符串
这意味着可以不使用双引号来进行字符串赋值和变量初始化
以下赋值操作都是合法的:
-a=a |:变量a的值将会是字符串a -b=c |:变量b的值将会是字符串c -c={a} |:变量c的值将会是字符串{a} -d=""d"" |:变量d的值将会是字符串"d"(包含双引号的d)
-[变量名]=[合法数学表达式]
该命令可以将表达式的运算结果赋值给变量,且自动转换类型:
-a=10 |:整数类型10
-b=5.5 |:浮点数类型5.5
-c=a+b |:浮点数类型15.5
-a=b-c |:整数类型-10
什么是数学表达式?
数学表达式是用以数值计算的公式,例如
1+1
、10*5
、10*(90-80)
Genscript中的数学表达式支持五种运算符:
+
(加)-
(减)*
(乘)/
(除)%
(取模/求余)表达式中可以包含数值变量但必须是已声明且有值的变量,否则会出现错误。用于表达式计算的变量类型只能是整数或浮点数
你可以将表达式用引号包裹起来(
"c+b"
)将其变为字符串而不是计算它,虽然不怎么用得到
整数溢出自动转换
对于表达式计算,Genscript有一个语法糖:
如果你尝试将超过整数类型范围的值赋给整数变量,那么它会自动转变为浮点数类型变量
数值范围
整数类型:-9223372036854775808 ~ 9223372036854775807 (包含首尾)
浮点数类型:-1.79769313486237E+308 ~ 1.79769313486237E+308 (包含首尾)
因为浮点数类型的范围很大(最大约17976931348623157后308个0),绝大多数情况下不会发生数据溢出。
然而,Genscript不能也不需要使用科学计数法对变量赋值,并且大数据处理对Genscript来说是不需要的