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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值