用lua做nginx擴展開發1

lua開發基礎語法

安裝

最好的實踐是:在win10安裝WSL(windows子系統)的ubuntu,然後使用

sudo apt install lua3 

就可以了

簡單語法

-- 返回arg1的階乘
function demo0(arg1)
    if arg1==1 then
        return 1       
    end
    return arg1*demo0(arg1-1)
end
-- 運行結果爲 
-- root@MSI:/home/chaojilaji/lua-demo# lua demo.lua 
-- 3628800

-- 連接元組
function demo1()
    a = {
        "1","2","3","4"
    }
    return table.concat( a, ", ", 1, 4 )
end
-- 注意:a的下標是從1開始的
-- 運行結果爲
-- root@MSI:/home/chaojilaji/lua-demo# lua demo.lua 
-- 1, 2, 3, 4

-- 循環
function demo2()
    a = {
        1,2,3,4
    }
    for key, value in pairs(a) do
        print(key .. " : " .. value)
    end
end
-- 運行結果爲
-- root@MSI:/home/chaojilaji/lua-demo# lua demo.lua 
-- 1 : 1
-- 2 : 2
-- 3 : 3
-- 4 : 4

-- 變量 local 表示局部變量,如果不標記local則表示未全局變量
function demo3()
    do
        local a = 1
        b = 2
    end
    print(a,b)
end

-- 匿名函數
function demo4(arg1)
    a = function (arg2)
            return demo0(arg2)
        end
    print(a(arg1),arg1)
end

-- while 循環
function demo5()
    cnt = 3
    while cnt>0 do
        print(cnt)
        cnt  = cnt - 1
    end
end

-- 條件判斷語句
function demo6(arg1)
    if arg1 == 1 then
        return 50
    elseif arg1 == 2 then
        return 2*100
    else
        return arg1
    end
end

-- 函數可作爲參數傳入函數
function demo7(arg1,arg2)
    return arg2(arg1)
end

-- 可變參數
function demo8(...)
    print(select("#",...))
    local arg1 = {...}
    for i, value in pairs(arg1) do
        print(i .. " : " .. value)
    end
end

-- 不等於 ~=
function demo9(arg1, arg2)
    print(arg1 == arg2)
    print(arg1 ~= arg2)
    print(arg1 >= arg2)
    print(arg1 <= arg2)
end

-- or and not
function demo10(arg1,arg2)
    print(arg1 == arg2 or arg1 > arg2)
    print(arg1 <= arg2 and arg1 == arg2)
end

-- 字符串處理函數 string
function demo12(arg1 )
    print(string.gsub( arg1,"a", "c",3))
    print(string.find( arg1,"a",1 ))
    print(string.reverse( arg1 ))
end


a = 'dasadasda'
b = "ewqeqewqewq"
c = [[zxczcxzczcxz]]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章