深入浅出游戏算法(3)-lua脚本(3)

来源:互联网 发布:淘宝1920图片显示不全 编辑:程序博客网 时间:2024/06/07 05:35

7、类型

    Luanil()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

0 0
原创粉丝点击