Lua 入门笔记

本文介绍了Lua编程语言的基础概念,包括变量的使用(全局和局部),函数的声明和返回值,table(类似于数组和map)的特性,全局表_G的应用,以及布尔类型的处理、分支判断和循环语句(for和while)。
摘要由CSDN通过智能技术生成

Lua简单入门笔记

目录

1. 变量

  • 简单变量

    a = 5               -- 全局变量(默认)
    local b = 5         -- 局部变量
    print(a, b)		    -- 可以一次打印多个变量 
    print(c)		   -- 未声明过的值,都是 nil
    ----------------------------------------------
    a, b = 1, 2		   -- 多变量赋值
    a, b, c = 1, 2      -- 值少于变量,此时c未被赋值,即 C = nil
    
  • number 变量

    a = 0x11		   -- 支持 16 进制
    b = 2e10		   -- 支持科学计数法	
    c = a * b		   -- 支持各种运算符
    d = 10^5		   -- 这里表示 10 的 5 次方,不是异或
    
  • string 类型

    a = "abcdadqdwq\nabc"	-- 支持单引号、双引号、转义字符
    b = 'awdawdwadwad'
    c = [[				   
    qwert\nyui
    asdfgh
    zxcvb
    ]]					   -- 双中括号内的内容会保持原样的打印,转义字符和注释也会无视
    d = a..b			    -- 将 a 和 b 串连接起来(用 .. 连接)
    e = tostring(100)        -- 将数字转为字符串
    f = tonumber("12")	     -- 将字符串转为数值
    g = tonumber("asd")      -- 上述字符串无法转为数字,则 g = nil
    print(#a)                -- 通过 '#' 可以获取字符串的长度
    
    s = string.char(0x30, 0x31, 0x32)	-- string.char()方法将参数变为字符
    n = string.byte(s, 2)			    -- 取出 s 的第二位,返回的形式是十进制
    

2. 函数

  • 函数声明

    function 函数名(函数参数)     -- 也可以写成: 函数名 = function(函数参数)
       -- body
    end						   -- 以end表示函数结束
    -----------------------------------------------------------------
    -- 例1:
    function f(a, b, c)
        print(a, b, c)
    end
    f(1, 2)					-- 缺少参数c,打印 1 2 nil
    -- 例2:
    function f(a, b, c)
        return a, b;		-- return 可以返回多个值
    end
    local i, j = f(1, 2)	
    print(f(1, 2))
    

3. table

  • 数字下标(类似数组)

    a = {1, "ac", {}, function() end}	  -- 不同于其他语言,索引从 1 开始,访问不存在索引返回 nil
    a[10] = 'a'						    -- 可以直接指定任意索引赋值
    table.insert(a, "abc")				 -- 通过table接口加入元素(尾插)
    table.insert(a, 1, "acc")			 -- 在指定位置 1 处插入元素,后续元素都会后移
    local s = table.remove(a, 2)		  -- 删除(并返回)数组指定的元素
    print(#a)						    -- #table名 可获取table的元素数量
    
  • 字符串下标(类似map)

    a = {a = 1, b = "abc", c = function() end, [";;"] = 123}
    print(a["a"])				-- 若 a 符合标准命名规范,可以直接 a.a 来调用
    print(a[";;"])				-- 输出 123,[";;"]符合标志命名规则
    a["x"] = "123123"			 -- 可以直接对一个下标赋值
    

4. 全局表(_G)

  • 所有的全局变量都存在 _G 表里

    a = 1;
    print(_G["a"])				-- a 是全局变量,存于_G
    print(_G["table"]["insert"])  -- table 和他的方法也存在全局表里
    

5. bool 型

a = true
b = false					-- lua里,只有 false 和 nil 代表假,其余都是真,0也真
print(1~=2)					-- 注意,lua里判断不等于用 ~= ,其余判断同于c
print(a and b)				-- 与
print(a or b)				-- 或
print(not a)				-- 非
c = 10
print(b > 10 and "yes" or "no")	 -- 条件成立返回and后的值,反之返回or后的值

6. 分支判断

if 条件1 then				-- then  end 表示一个代码块,相当于 c 的 {}
    ...
elseif 条件2 then
    ...
else
    ...
end

7. 循环语句

  • for 循环

    for 变量 = 初始值, 终止值, 步长(可选) do
        ...					
    end
    --------------------------------------------------
    for i=10,1,-1 do
        print(i)	
        if i == 5 then
            break
        end
        i = 1			-- for的循环体里无法对循环变量进行修改,此时的i和上方的i是两个变量
    end
    
  • while 循环

    while 条件 do
        ...
    end
    -------------------------------------------------
    local n = 10;
    while n > 1 do
        if n == 5 then break end
        n = n - 1			-- 注意:lua里不支持 ++ -- 操作
    end
    
  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值