7、类型
Lua有nil(空)、number(数字)、boolean(布尔型)、string(字符串),这几种类型是一般程序语言都有的基本类型。
nil表示没有有效值。比如
> a=nil
> print(a)
nil
字符串用双引号包围
> b="i am string"
> print(b)
i am string
也可以用单引号包围
> b='i am string'
> print(b)
i am string
Lua同时提供了类似于python的原样保留机制(python前后各使用三个引号包围字符串格式),它采用“[[”与“]]”包围的机制。
> a=[[helo,
>> world.
>> i am myhaspl.
>> ]]
> print(a)
helo,
world.
i am myhaspl.
麦好的AI乐园博客所有内容是原创,如果转载请注明来源
http://blog.csdn.net/myhaspl/
也可以在方括号之中加入任意数目的“=”。
> c=[==[
>> hello,[[world]].
>> ]==]
> print(c)
hello,[[world]].
>
使用“..”连接符将对前后2个变量(可以是字符串之间也可以是字符串与数字之间)进行字符串连接操作:
> print('13'..'25')
1325
> print('13'..22)
1322
在字符串与数字之间使用“+”、“-”、“*”、“、”运算符,将导致字符串转化为数字参加四则运算。
> print('13'+25)
38
> print('13'/25)
0.52
> print('13'-25)
-12
> print('13'-25*'11')
-262
特别注意,“+”只是数学运算,不是连接运算,如下例所示
> print('13'..22*'10')
13220
>
结果并不是132210,而是22*10的结果转化为字符串与’13’字符串连接。
判断变量类型可以通过type函数
> print(b)
i am string
> print(type(b))
String
> x=234
> print(x)
234
> print(type(x))
number
>
> mynil=nil
> print(type(mynil))
nil
>
然后,介绍lua的最灵活的(实际上也是唯一的)数据结构--关联数组table,可以通过整数索引来访问数组元素,也可以通过字符串等来作为索引,table有关联的特点,拥有类似于哈希表或键值数据库的存取机制,能通过键(即以键为索引)访问数组中对应的值,正因为具有这种强大的特性,它可存取符号表、数组、模块、包等。
下面用table创建了一个学生年龄数据集,以学生姓名为键,年龄为值。
> student={}
> name="张三"
> student[name]=20
> name="李四"
> student[name]=22
然后以姓名为索引访问学生年龄数据
> print(student["张三"])
20
也可以用学生学号为索引
> student[0]=18
> student[1]=28
> print(student[1])
28
> print(student[0])
18
运用多个table结构可以存取更多的学生信息(以学号、姓名、年龄为例,存取2个学生)
> student={}
>st1={}
> st1['age']=22
> st1['name']="张丰"
> st1['id']=1
> student[0]=st1
>st1={}
> st1['id']=2
> st1['name']="张奇"
> st1['age']=20
> student[1]=st1
> print(student[0]['name'])
张丰
> print(student[1]['name'])
张奇
> print(student[1]['age'])
20