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