上节说了Lua书写的一些细节,这次就来具体地将这些细节整理出来。
一、代码书写规则
1.代码注释
单行注释:--注释内容
多行注释:--[[ 注释内容 --]] , --[[ 注释内容 ]] , --[[ 注释内容 ]]--
感觉多行注释只要确保起始为 --[[ ,终点有 ]] 就行了
2.函数名和变量名规则
3.全局变量
二、基本数据类型和常用符号
类型特征:Lua为弱类型语言,声明变量时不需要指定类型,变量的类型由变量内存储的数据决定
即可直接赋值,无需声明
数值类型:number
布尔类型:boolean
字符串类型:加上双引号或单引号
a = 12
b = true
c = '字符串'
关系运算符:不等于为 ~=
逻辑运算符:and(与),or(或),not(非)
特殊符号: .. 这两点表示两个字符串相加
a = 'abcd'
b = 'efgh'
c = a..b
注:Lua没有+=,-=,*=,/+,++,--等符合运算符
三、分支结构
1. if语句:
if(5 < 10)
then --用then和end代替以往的{}进行包裹
代码体
end
2. if...else...语句:
if(5 > 10) --只有if下才有then
then
--代码体
else
--代码体
end
3. if...elseif... 语句:
if(5 > 10)
then
--代码体
elseif(10 > 15)
then
--代码体
end
四、循环结构
1.for语句:
for i = 0, 10, 1 do
--代码体
end
可等价于:
for(int i = 0; i <= 10; i++)
{
//代码体
}
2.while语句:
while(a > b)
do
--代码体
end
3.类似于do..while的语句:
repeat
--代码体
until(a > b) --当until中布尔表达式为false时循环执行
注:Lua中的循环结构只有使用break关键字可以跳出
五、函数
注:Lua是解析型语言,函数必须先声明,然后才可以调用
function Hello()
print('Hello World')
end
function Add(a, b)
return a + b
end
--函数可直接成为参数传递
function MyAdd(a, b, func) --类似于C#中的委托,但不需要额外声明
return func(a, b)
end
result = MyAdd(5, 8, Add)
print(result) --输出结果为13
六、数组
1.基础性质:
长度:Lua数组长度不固定,可以给后续的索引位置继续赋值
索引:Lua数组索引从1开始,这是很匪夷所思的地方,传闻是当初语言开发者大脑短暂抽搐了下
2.代码格式:
myArray = {'住址',1234, true}
table.getn(myArray) --可通过该方法获得该数组长度
for i = 1, table.getn(myArray), 1 do --遍历时所以也是从1开始
print(myArray[i])
end