- 四舍五入取整写法,math.floor(x+0.5)
- 保留几位小数且四舍五入,string.format("%0.1f",math.floor( x*10+0.5)/10))
- 闭包情况下,调用方法是这样的
function NewCounter(x)
print(x)
return function (y)
print(y)
end
end
local c1=NewCounter(1)
print(c1)
输出两个结果1,function: 0000024649B00E00,也就是NewCounter方法的输出以及闭包的另一个方法,想要输出闭包的方法,需要这样
function NewCounter(x)
print(x)
return function (y)
print(y)
end
end
local c1=NewCounter(1)
print(c1(2))
此时输出1,2
- 双斜杠“//”为地板除,即先做除法(/),然后向下取整(floor)。至少有一方是float型时,结果为float型;两个数都是int型时,结果为int型。
- 当两个原表__index和__newindex分开写的时候,如果__index写在前面,那么__index就不会被调用,同理,如果__newindex写在__index之前,__newindex不会被调用
local tb={}
setmetatable(tb,{__index=function(t,k)
return "not find"
end})
setmetatable(tb,{__newindex=function(t,k,v)
local patch="version"
if k==patch then
rawset(t,patch,"47")
else
rawset(t,k,"6666")
end
end})
print(tb.we) --输出nil
如果是写在同一个表中,则不影响
local tb={}
setmetatable(tb,{__index=function(t,k)
return "not find"
end,
__newindex=function(t,k,v)
local patch="version"
if k==patch then
rawset(t,patch,"47")
else
rawset(t,k,"6666")
end
end})
6.当需要require一个模块的时候,可以指定加载模块的路径,package.path返回当前默认路径,可以修改这个路径,比如
package.path="../HelloWorld/?/Hello.lua"
require("src")
此时,加载模块的时候,相当于"src"替换了路径中的问号,模块所在路径变成了"…/HelloWorld/src/Hello.lua"
或者加载指定的lua文件
package.path="../HelloWorld/src/?.lua"
require("Hello")
此时路径是"…/HelloWorld/src/Hello.lua
7.若_ENV置空,就不能从外部访问,比如require
8.在弱引用表中,若指定键为弱引用,只有对象作为键可以从表中被移除,数字和布尔值则不可以,字符串也不可以
9.ipairs会略过非数值索引,pairs不会
10.获取表长时,#不可以获取键值对形式的元素
11.通常,_G和_ENV指向的是同一个表,但是,它们是很不一样的实体,_ENV是一个局部变量,所有对“全局变量”的访问实际上访问的都是_ENV,_G则是一个在任何情况下都没有任何特殊状态的全局变量,_ENV永远指向当前环境,而假设在可见且无人改变过其值的前提下,_G通常指向的是全局环境