Lua的基本操作语法

本文主要介绍了Lua语言的基本操作,包括变量定义、数据类型、控制结构等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本操作
B.lua

print("==== 标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)====")
print("================== 单行注释 -- ==================")
--print("hello word")
print("================== 多行注释 --[[]] ==================")
--[[
print("hello world")
print("hello world")
print("hello world")
]]

print("================== 1、基本语法 ==================")
--未定义的变量
print(a)
--定义变量
b = 10
print(b)
--删除
b = nil
print(b)

print("================== 2、数据类型 ==================")
--nil, boolean, number, string, function, userdata, thread, table
--type函数测试变量或者值的类型
print(type("hello world"))
print(type(1.2*2))
print(type(print))
print(type(true))
print(type(nil))
print(type(type(x)))

print("================== nil比较 ====================")
--nil比较
print(type(x))    --nil
print(type(type(x))) --string
print(type(x) == nil)   --false
print(type(x) == "nil") --true

print("================== false 和 nil ==================")
if false or nil then
    print("至少一个true")
else
    print("都为false")   --都为false
end
--0
if  0 then
    print("0是true")   --0是true
else
    print("0是false")
end

print("================== [[]]表示一块字符串 =========================")
html = [[
<html>
<head></head>
<body>
    <a href="http://www.runoob.com/">教程</a>
</body>
</html>
]]
print(html)

print("=========== 数字字符串进行算数操作时,会将这个数字字符串转成一个数字 ===================")
print("1"+7)
print("1"+"8")
print("1+9")
print("-2e2" * 6)
--print("error" + 1)    --错误
print("ok" .. 1)

print("=================== 表 ================")
--创建空表
local t1 = {}
--直接初始化表
local t2 = {"apple","orange","pear"}
--操作表
a = {}
a["key"] = "value"
key = 10
a[key] = 11
a[key] = a[key] + 10
for i, v in pairs(a) do
print(i .. "-" .. v)
end

print("================== 表索引从1开始 =====================")
for i, v in pairs(t2) do
    print(i .."-" ..v)
end

print("========= table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil=======")
for i = 1,10 do
    t1[i] = i
end
t1["key"] = "val"
print(t1["key"])    -- val
print(t1.key)       -- val
print(t1["none"])   -- nil

print("================== 遍历表数据 ==================")
tab1 = {2, key1 = "val1", key2 = "val2", "val3"}
for k, v in pairs(tab1) do
    print(k .. " --- " .. v)
end

for k, v in ipairs(tab1) do
    print(k .. " --- " .. v)
end

param = {
    {ip = "192.168.124.11"},
    {ip = "192.168.124.12"},
    {ip = "192.168.124.13"},
    {ip = "192.168.124.14"},
}
for i, v in pairs(param) do
    print(v["ip"])
end



print("================== 删除表数据 ==================")
--删除表数据
tab1.key1 = nil
for i, v in pairs(tab1) do
    print(i .."- " ..v)
end

print("===================== Lua运算符 =====================")
a,b = 1,2
c,d,e =3,4,5
print(a,b,c,d,e,f)   -- 没有的变量为nil
print("==== +, -, *, %, /, =, >=, <=, ~= ====")
print(a + b)    -- 3
print(a - b)    -- -1
print(a * b)    -- 2
print(a % 2)    -- 1
print(a / b)    -- 0.5
print(a >= b)   -- false
print(a <= b)   -- true
print(a ~= b)   -- true
print(a == b)   -- false

print("=== and or not ===")
print(true or false)
print(true and true)
print(not true)

print("=== 变量长度 ===")
m = 'hello'
n = {1,2,3,4,5,6}
print(#m)
print(#n)

print("===================== 字符串连接 ======================")
m1 = "hello"
m2 = "world"
print(m1 .. m2)

print("===================== Lua流程控制======================")
-- 条件
a1,b1 = 1,2
if a1 < b1 then
    print("a1 < b1")
else
    print("a1 >= b1")
end
-- 循环
-- while循环
i = 10
while (i >1) do
    print(i)
    i = i - 1
end
-- 条件为真时跳出
i1 = 10
repeat
    print(i)
    i = i -1
until (i < 1)

-- for循环
for i = 1, 10 do
    print(i)   -- 1,2,3,4,5,6,7,8,9,10
end

-- for循环 第三个参数表示每次都加上这个因子
for i = 1, 10, 2 do
    print(i)   -- 1,3,5,7,9
end

-- 泛型循环
arr = {'a','b',3,5}
for i, v in pairs(arr) do
    print("下标:" ..i .. ",值:" .. v)
end

print("===================== 数组======================")
arr1 = {}
arr2 = {"a","b",1}
length = #arr2
for i = 1, length do
    print(arr2[i])
end

print("================== function(函数)=================")
function factorial(n)
    if n == 0 then
        return 1
    else
        return n * factorial(n - 1)
    end
end
print(factorial(4))     -- 24
factorial1 = factorial
print(factorial1(4))    -- 24

x,y,z = factorial(4)
print(x,y,z)      -- 24 nil nil

print("======== function 可以以匿名函数的方式通过参数传递======")
function testFun(tab,fun)
    for i, v in pairs(tab) do
        print(fun(i,v))
    end
end
tab = {key1 = "val1", key2 = "val2"}
testFun(tab, function(key, val)
    -- 匿名函数
    return key .. "=" .. val
end
)

print("==================== 引入包 ==========================")
require("C")
local dpn = _M.default_partition_nums
print(dpn)

local producer = _M.new()
print(producer)

local res = _M.send()
print(res)

C.lua

_M = {}
_M.default_partition_nums = 3

function _M.new()
    return "producer"
end

function _M.send(topic)
    return "ok"
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值