Lua 基本数据类型的一些简单的实用方法

    技术2022-07-11  95

    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) {     -- }

     

    Processed: 0.013, SQL: 9