Lua是一种轻量小巧的脚本语言。宿主语言C/C++提供容易使用的扩展接口和机制。
变量的一些介绍:
Lua 变量有三种类型:全局变量、局部变量、表中的域。变量的默认值是nil。
Lua 中的变量默认是全局变量,用local声明的为局部变量,表中的域在此表内。
local a= 5 -- 局部变量。
b = 5 -- 全局变量。
关于常用基本数据类型的一些实用方法
1,基本数据类型
(1)number
#Lua只有这一种number数据类型,表示双精度类型的实浮点数。字节数8,15个有效位,超过会截取。使用中需要注意位数问题。
--string转number
function tonumber(e, base) end -- local a = tonumber("Hello world")(2)string
#string的简单使用方法
--判断源字符串中是否包含目标字符串,匹配
--function string.find(s, pattern, init, plain) end -- 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil。 if string.find("Hello world","w",1) then print("元字符串Hello world中包含目标字符串w") -- else print("元字符串Hello world中不包含目标字符串w") end--字符串拼接
--function string.format(formatstring, ...) end print(string.format("Hello %s","world")) --比较简洁的方式为使用连字符.. print("Hello ".."world")--获取字符串的长度
local a = "Hello world" print(#a)--字符串截取
--function string.sub(s, i, j) end --s 元字符串,i 起始位置,j 结束位置 print(string.sub("Hello world"),1,4)--字符串分割
function string:split(sep) local sep, fields = sep or ":", {} local pattern = string.format("([^%s]+)", sep) self:gsub(pattern, function (c) fields[#fields + 1] = c end) return fields end --使用 local str = "Hello, world" local resultTab = str:split(",") --分割后得到一个数组--字符串替换
--function string.gsub(s, pattern, repl, n) end --s是原字符串,pattern为目标字符串,repl为要替换的字符串,n是替换次数-可选(可以忽略,忽略则代表全部替换) local str = "abc" local result = string.gsub(str,"ppp","b") -- result因该是apppc--number转string
--function tostring(v) end -- local a = 1.00234 local str = tostring(a)(3)表
Lua中的表下表从1开始,可以指定特殊下标。
#表的创建
local tab = {] local tab = {"a","b"} local tab = {"a":"A", "b":"B",} --小写的a,b分别为下标#表的简单使用
--插入元素
--function table.insert(list, pos, value) end -- table.insert(tab,1,"value") --向tab表的第1位插入一个value的值。 table.insert(tab,a,"A") --向tab表的下标为a的位置插入一个A值。--表元素赋新值
-- tab[1] =value -- 下表1的对应的新值是value。 --tab["a"] = A -- 下表a的对应的新值是A。--移除元素
--function table.remove(list, pos) end -- table.remove(tab,1) -- 移除tab表下标为1的元素。 table.remove(tab,"a") -- 移除tab表下标为a的元素。 tab = nil -- 清空tab表--连接
--function table.concat(list, sep, i, j) end -- sep,i,j 是可选项。 --sep是指定的连接符号 --i,j,i是连接开始小标,j是连接结束下表。 i要小于j,但一定要大于等于1,因为Lua表下标从1开始。 -- local tab = {"a","b","c"} local result = table.concat(tab,"+",1,2) -- 连接tab表的下标为1和2的元素,以+为连接符号。输出结果因该是a+b。 -- local reesult table.concat(tab) -- 输出结果abc。--获取tab长度
-- local tab = {"a","b","c"] print(#tab) -- 输出因该是3.(4)函数
--在Unity+FairyGUI中,我们经常结合Lmabda表达式,这样使用它
aButton.onClick:Add(functin (para1,para2) self:MyFunction(para1,para2) end) -- function Home:MyFunction(para1,para2) { -- }