上节说了Lua书写的一些细节,这次就来具体地将这些细节整理出来。

一、代码书写规则

        1.代码注释

                  单行注释:--注释内容

                  多行注释:--[[ 注释内容 --]] , --[[ 注释内容 ]] , --[[ 注释内容 ]]--  

                  感觉多行注释只要确保起始为 --[[ ,终点有 ]] 就行了


                   匈牙利命名法,驼峰命名法或者你自己的命名规则


         3.全局变量



local"关键字,这个关键字与C++,java,C#中的private作用类似,不过 local可在方法内部声明,这也是Lua的一个特点 


                     

二、基本数据类型和常用符号

            类型特征: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


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