数据类型简介

Silk是动态类型语言,变量不需要声明类型,每个变量在使用前必须赋值,用等号 = 来给变量赋值,Silk会根据值来决定变量内部的类型。
nCount=1;
dMile=100.68;
strName="Wang Gang";


Silk语言一共有8种数据类型:
整型
n=10;

整型用来表示整数
在32位的Silk上,整型的范围是-2的31次方 到 2的31次方,即范围在-2147483648 到 2147483647之间。 
在64位的Silk上,整型的范围是-2的63次方 到 2的63次方,即范围在-9223372036854775808 到 9223372036854775807之间。
可以通过内置函数_int把其它类型转换成整数,如:
n=_int("12"); 
m=_int(12.36);


浮点型
mile=200.56;

浮点型用来表示带小数的数值,内部为双精度浮点数,范围为-2的1024次方 到 2的1024次方。
可以通过内置函数_float把其它类型转换成浮点数,如:
 _float("12.36");


字符串型
name="Wang";

字符串用双引号 " 括起来,同时可以使用反斜杠 \ 转义特殊字符,和C类似,但Silk没有单独的字符类型,一个字符就是长度为1的字符串。

数组型
names=["Wang","Zhang","Li"];
array2=[1,"abc",200.23,names,{"Zhao":50}];
print(names[1]);

数组是写在方括号 [] 之间、用逗号分隔开的一组元素列表,用下标索引来访问数组中的值。和C不同,Silk数组中元素的类型可以不相同,它支持数字,字符串,甚至可以嵌套包含数组,字典。

字典型
names=["Wang","Zhang","Li"];
dicts={"Wang":25,"Zhang":30,"Li":[10,20],"Others":names};
print(dicts["Zhang"]);

字典是一种映射类型,字典用 { }来初始化,它是一个无序的 键(key) : 值(value) 的集合。
在同一个字典中,键(key)必须是唯一的。同样,Silk字典中Key,value的类型可以不相同,它支持数字,字符串,甚至可以嵌套包含数组和字典。

布尔型
Silk中的布尔型其实就是整型的1和0,只是把true和false定义成了关键字。

句柄型
是指Silk内部指向的一个内存地址,如果你打开了文件或者调用了外部的Dll等,返回的是句柄类型,可以用它操作这个文件或Dll
lib=_loadlib(get_curdir()+"sqlitedll64.dll");
print(_type(lib));


空值
有一个特殊的常量 null和 false 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。
n=null;