变量类型
最常用的变量是整数,如:整数 窗口。就是申请一个名为窗口整数变量。
整数变量也是万能的指针,传送参数参数只有整数和小数这两种。
在小程序片段之内的变量是局部变量,之外的是全局变量
变量的作用主要是用来存取数据,传递参数,算法运算等等。
局部变量只有整数、小数、浮点和文本这四种类型
变量类型之间可以使用等号进行相互转换,语法:变量一=变量二
就是把右边的变量类型转换成左边变量的类型数据。例如:
整数 数一;小数 数二;浮点 数三;
数一=数二;是小数转整数;数二=数一;是整数转小数;
数一=数三;是浮点转整数;数三=数一;是整数转浮点;
转换文本时可以拼接。例如:文本 内容[16]="结果:"+数一"浮点:"+数三;
等号左边是文本自动转文本或拼接,等号左边是小数或浮点时表达式进行浮点运算
内容+数一"\r\n" 是向内容追加文字,原文字增加数一的数字和换行符
如果等号左边是整数,右边是混合运算,尽可能把小数或浮点变量写在前面
如果等号左边和右边都是整数变量,需要浮点运算时,等号后面要加上冒号
例如:数一=:数一 - 数二;还有小数浮点转整数且没有运算: 数一=数二;
代码后面需要加换行或者分号 ,否则难以判定浮点运算与整数的转换
英文名称 | 中文名称 | 数值范围 |
Bool | 布尔 | 真(True),假(False) |
char,sbyte | 字符 | -128~127 |
byte,uchar | 字节 | 0到256 |
short | 短数/整形 | -32768到32767 |
ushort,word | 正数 | 0到65535 |
int,dword | 整数 | -2147483648到2147483647 |
single | 小数 | 负数-3.402823E38到-1.401298E-45;正数1.401298E-45到3.402823E38 |
string | 文本 | 现已取消变长文本,申请时必须指定长度;文本 消息[16]="系统提示";英文1字节,汉字2字节 |
bytes | 字节组 | 字节组 数组[15,$20,60,128];一组固定的数据,跟文本性质相似 |
Double | 浮点 | 负数时-1.79769313486232E308到-4.94065645841247E-324;正数4.94065645841247E-324到1.79769313486232E308 |
date | 日期 | 8字节日期时间,运算和比较按浮点数格式 |
long,ulong | 大数 | 64位整数,32位编程下多用于存储或时间计算。 |
type | 类型 | 自定义结构体,示例; 类型 窗口类{整数 句柄,左边,上边,宽度,高度;文本 标题[64],内容[256];} |
datab | 数据表 | 自定义数据表,示例; 数据表 人物表{整数 生命,内功;字节 等级,职业;小数 坐标X,坐标Y;文本 名称[16],帮派[14];} |
object | 对象 | 对象 名称=对象名;使用等号给对象定义,否则只是一个整数 |
scls | 子类 | 子类 类名{整数 变量1,变量2;程序段 登陆(账号)...结束;} |
十六进制数字是用$或者0x表示,格林威治时间可以用整数来表示,如整数 时间=0@2018-8-15 12:00;不要带引号。
带引号是文本,如 整数 提示="提示消息";文本 内容(16)="$374727774367008C7A";
前面加$时把十六进制字符转换成二进制数据。文本拼接的写法:内容="最终结果:" + 数值 "。总共" + 次数 "次"
整数 数值=转整数(内容);把数字文本转整数值
小数 数值=转小数(内容);把数字文本转小数值
浮点 数值=转小数(内容);把数字文本转浮点值
关于全局变量和局部变量
在程序段内申请的变量包括提交的参数都是局部变量,在程序段和子类之外申请的变量是全局变量。
全局变量包括字符、字节、整形(短数)、正数、整数、日期、小数、浮点、大数、子类、对象和自定义类型。
局部变量目前只有整数、小数、文本、浮点、子类和对象。任何变量在作为参数传递的时候,均为4字节数值。
所以大于4字节的类型比如文本、浮点和自定义类型,提交的是变量的地址而不是值,地址通常大于0x400000。
小数是提交参数要直接进行小数运算时,才需要特别指定。除此之外任何提交的参数都按整数类型。
因此程序段的参数就只有小数和整数这两种,结构体和子类前面可以写上类的名称用来定义参数。例如:
程序段 示例(坐标类 值) 整数 横坐标=值.左,纵坐标=值.顶 程序段 计算(角色类 人物) 整数 伤害=(攻击-人物.防御)*1.5 -人物.减伤;
局部变量的申请和使用:
局部变量除文本外都是4字节,文本可以大于4字节,必须是4的整数倍。
局部变量最多可以申请空间1-2M,不使用局部变量则不申请,少量使用时(限120字节)
局部整数和小数变量30个以内,文本按申请的长度算。需要更多变量时,变量前加局部或local
并且放在程序段开头第一行,编译时候才好估算此程序段需要申请多大的堆栈空间。如:局部 文本 ss(32);
局部变量与全局变量区别是很大的,编程语法上尽量做到能兼容使用,方便程序灵活处理。
局部文本和全局文本都可以像操作数组一样,读写其中每一字节。如:文本 s(16)="abc";s(2)=\d;
也可以像其它变量一样,写入数字。如:s=0;文本就被清空,s=$31323334;文本开头就等于4321
因为十六进制是反转的,最后的34写入字符的第一字节,对应文字是4,用s(1)读取出来就是52