Lua-基础知识


基础

数据类型

Lua语言是一种动态类型语言,有8种基本类型:

  • nil空,表示无效值,将nil赋值给其他变量则相当于将其删除
  • boolean布尔,包括truefalse两个值,a and b or c类似于三目运算符a ? b : c
  • number数值
  • string字符串
  • table
  • function函数
  • userdata用户数据
  • thread线程

注释

--  方式一 
-- local name = "Lua"

--  方式二(这里可以快速打开注释使代码生效)
---[[
local is_test = true
if is_test then
    name = "LuaTest"
end
--]]

函数调用

local function GetLen(t)
    return #t
end

local function ErrorMsg(msg)
    debug.traceback(msg, 3)
end

--  代码报错
local len = GetLen({})

--  ok返回调用是否成功,result表示函数返回值,如果有的话
local ok,result = pcall(len, 2)

--  与pcall一样,额外可以传入错误回调
local ok,result = xpcall(len, ErrorMsg, 2)

模块

模块引用

require "math"
require("math")
--  可以赋值给局部变量
local m = require("math")
m.abs(-1)

require会在表package.loaded中检测模块是否已被加载。如果已经加载过,会直接返回相应的值。所以一旦一个模块被加载过,后续对同一模块的加载都会返回同一个值。
如果没有加载过,则会根据package.path搜索指定的Lua文件,然后用loadfile进行加载,结果就是一个被叫做加载器(loader)的函数.
如果找不到lua文件,则会搜索C标准库,然后使用底层函数package.loadlib进行加载。

想重复加载某一个模块,调用package.loaded[model_name] = nil后,再加载即可

声明:有无之境|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Lua-基础知识


有无之境