上次去看了一下 display 库的文本和图形,这次就学习一下基本的全局函数。
一、Assert 断言函数
--通用格式,v是参数表达式,真则true,反之提示错误信息,
--省略message提示 assertion field
assert (v [, message])
二、error 函数
error (message [, level])
通常error会添加一些关于出错位置的信息在message之前。level参数指定如何获取错误位置。level=1(默认),表示出错位置放在error函数被调用的地方。level=2把出错位置放在error被调用的函数的调用出处,也就是上一级函数;其他数字以此类推;level=0,表示避免把出错位置信息放在message里。
三、_G 全局变量
保存着全局的环境变量,_G._G=_G,改变其值不影响其他环境变量,反之不然,如非要改变环境变量使用 setfenv 函数。
四、next 函数
next (table [, index])
next 允许程序遍历table的所有field。它第一个参数是table,第二个参数table的index。next返回table的下一个index和它关联的值。当第二个参数为nil时,next返回初始index和它关联的值。当用最后一个index调用next,或者用nil作为table参数,next函数返回nil。如果第二个参数省略,也就相当于第二个参数填入了nil。实践中,你可以使用next(t)来检测一个table是否为空。
五、pcall 函数
pcall (f, arg1, ...)
采取保护模式来传参调用某个函数,这意味着f里面的任何错误不被传播。
六、rawequal 函数
rawequal(v1, v2) --检查v1是否等于v2,不调用任何元方法
rawequal(12, 13) --return false
rawequal(12, 12) --return true
七、setmetatable 函数
local t1 = {}
local t2 = {}
t2.__index = t2 --t1里面找不到的元素就去t2里面去找
setmetatable(t1, t2) --给t1设置元表
for i=1,10 do
t2[i] = i
end
print(t1[4])
元表相关知识可以去看下寰子的博客,通俗易懂。
八、tonumber 函数
tonumber (e [, base])
print(tonumber("s65df")) -- nil
print(tonumber("1024")) -- 1024
函数尝试将参数转化为数字,只能转数字或者数字字符串。
九、tostring 函数
print(tostring("1024")) -- 1024
print(tostring(1024)) -- 1024
print(tostring(type(false))) -- boolean
函数接收一个任意类型的参数,将其按照合理的格式转换成一个字符串。为了完全控制数字转换成字符串的方式,可以使用string.format。
在这里插入代码片