lua 学习总结文档

一、lua 基本语法

二、lua 数据类型及操作

lua 是动态类型语言,变量无需声明定义,可以直接进行赋值操作。主要包含如下表格中的数据类型:

  • nil:表示一个无效值
  • boolean:包含两个值:false 和 true。
  • number:表示双精度类型的实浮点数
  • string:字符串由一对双引号或单引号来表示
  • function:由 C 或 Lua 编写的函数
  • userdata:表示任意存储在变量中的 C 数据结构
  • thread:表示执行的独立线路,用于执行协同程序
  • table:Lua 中的表其实是一个”关联数组”,数组的索引可以是数字、字符串或表类型。
  • nil (空)

nil 表示一种无效的值,它只有一个值 nil

print(type(nil))  -- nil

给全局变量或者表中的变量赋值为 nil,相当于删除该变量。

lua_global_var = nil    -- 相当于删除lua_global_var全局变量
lua_table = { key1 = 'lua', key2 = 'lang' }
lua_table.key1 = nil    -- 删除了lua_table中的key1元素
  • boolean(布尔)。lua 中只有 falsenil 的布尔值为

  • number(数字)。Lua 默认只有一种 number 类型,以下几种写法都被看作是 number 类型
    print(type(2))
    print(type(2.2))
    print(type(2e+1))
    print(type(0.2e-1))
    print(type(7.8263692594256e-06))
    
  • string(字符串)
demo1 = "hello world."    -- 单引号也行
-- 多行字符串
demo2 = [[
<html>
<head></head>
<body>
    <a href="https://www.linuxblogs.cn/">程序员肖邦</a>
</body>
</html>
]]

几种字符串的操作

print("a" .. 'b')          -- ab  字符串连接用..
print(#"linuxblogs.cn")    -- 13  字符串的长度 #(语法糖)
print("2" + "6")           -- 8   对数字字符串运算时,lua 会尝试将字符串转换为1个数字

字符串相关操作可参考: lua 教程

  • table(表)
local table1 = {}   -- 创建一个空的 table
local table2 = {"apple", "pear"}  -- 直接初始表
print(table2[1], table2[2])  -- 'apple' 'pear'  lua 索引是从 1 开始的

表的相关操作可参考: lua 教程