0
点赞
收藏
分享

微信扫一扫

Lua 函数相关

天蓝Sea 2022-02-26 阅读 80

Lua 函数相关

---函数多个返回值
function test01(arr)
    local maxIndex = 1
    local maxNum = arr[maxIndex]
    for i, v in pairs(arr) do
        if maxNum<v then
            maxIndex = i
            maxNum = v
        end
    end
    return maxIndex,maxNum
end
arr = {4,6,8,2,13,54,1,32}
print(test01(arr))
---可变参数
function test02(...)
    local res = 0;
    local t = {...}
    for i, v in pairs(t) do
        res = res + v
    end
    return res/#t
end
print(test02(1,2,3,4))
---函数作为参数
function myPrint(val)
    print("自定义打印输出函数:"..val)
end
function test03(i,j,func)
    func(i+j)
end
test03(1,2,myPrint)
---数学库相关
print("===================================================")

print(math.abs(-20))
print(math.max(1,1,2,3,4,5))
print(math.min(1,4,2,1,3,5,7))
print(math.sqrt(25))
print(math.floor(14.932))

print(os.date())
print(os.time())

--真随机数
function GetRandomNumber(min,max)
    return math.random(min,max)
end
math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 9)))
for i = 1, 10 do
    print(GetRandomNumber(1,1000))

end

---闭包函数
function test04(i)
    print(i)
    return function()
        return i + 1
    end
end
v = test04(2)
print(v())

function test05(i)
    return i
end
print(test05(99))


function ResMul()
    local num = 10
    function fun1()
        print(num)
    end
    function fun2()
        print(num+99)
    end
    return fun1,fun2
end

res1,res2 = ResMul()
res1()
res2()
function test06()
    return (string.find("zzs is zzs","is",1))
end
print(test06())
举报

相关推荐

0 条评论