lua 脚本语言基础语法

1、变量声明

a=1 
b=2 
local c=3 
a,b=1,2

(1)lua中默认声明的变量是全局变量(a=1),如果当前文件A引用了另外的文件B,在B文件中一样可以使用变量a

(2)加了local关键字之后(local c=3)此时c就是局部变量,只能在当前的文件中使用

(3)lua支持多重赋值,如(a,b=1,2),表示的是a=1 b=2的含义

2、nil

在lua中没有被声明过的变量都是nil,nil是一种类型,这种类型就一种值(nil)

3、数值类型

# a就是数值类型 
a=1      
#lua支持16进制的声明 
a=0x11   
#lua支持加减乘除运算 
a=1 
b=2 
print(a + b) 
print(10^5) 
#lua5.3支持左移右移 
print(1<<2)

4、字符串类型

#lua中支持使用单引号或者双引号标识字符串,也支持转义字符 
a = "qwerty" 
b= 'asdfgh' 
c='qwen123456'    #n表示换行 
#[[]]可以原原本本的将中间的内容保存下来 
a = [[aasdff,qwert]] 
print(a)    #输出aasdff,qwert
#直接取出字符串的某位 
s = string.char(0x30, 0x31,0x32) 
b = string.byte(s,2)    #取出s的第二位 
print(b)

基于lua的这个特性,可以用lua的字符串存储一些a如二进制、十六进制类的数据(lua的字符串中所有的数据都是原原本本的存起来的,不会受到任何的影响)

5、函数定义

#基本的函数格式 
function function_name( ... ) 
    -- body 
end 
备注: 
function_name:函数的名字 
( ... ):参数列表 
-- body:函数体 
等价形式 
function_name = function ( ... ) 
    -- body 
end 
函数定义的案例--无返回值的函数 
function firstFun(a,b) 
   print(a,b) 
end 
函数定义的案例--有返回值的函数 
function first(a,b) 
   return a 
end 
函数定义的案例--同时返回多个值的函数 
function first(a,b) 
   return a,b 
end

6、table

table有两种下标,一种数数字型的 一种是字符型的

(1)数值下标

什么都可以存,只需要逗号分割,提取元素的时候,从1开始

#数值型数组 
a = {1,"qwer", function() end,{}} 
print(a[1])   #获取数字中第一个元素 
备注:在lua中某个下标没有表达任何值的话,那么就是nil
#在table中也可以直接赋值 
a = {1,"qwer", function() end,{}} 
a[5] = "123456" 
print(a[5])
#数值型的table获取长度可以使用# 
a = {1,"qwer", function() end,{}} 
a[5] = "123456" 
print(#a)     #获取table的长度
#lua中提供table接口对数组进行操作 
a = {1,"qwer", function() end,{}} 
a[5] = "123456" 
添加 
table.insert(a,"987654")    #在table中插入一个元素"987654"  位置在第六位 
table.insert(a,2"987654")  #在table的第2个位置插入指定的元素 
移除 
table.remove(a,2)  #在table的第2个位置移除元素 
local c= table.remove(a,2)   #接收table中指定位置删除的元素值

(2)字符串型下标

#字符串型数组 
a = { 
    a=1, 
    b="12345", 
    c= function() 

    end, 
    d=123456 
} 
打印数值: 
print(a["a"])     #打印a下标的值 
等价方式    print(a.a) 
print(a["d"])     #打印d下标的值 
等价方式    print(a.d)
#直接赋值 
a = { 
    a= 123, 
} 
a["abd"] = "123456789" 
print(a.abd) 
备注:没有声明过的变量输出为nil
2