有无之境

Lua-基础知识

基础

数据类型

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


注释

--  方式一 
-- 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后,再加载即可

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »