概述
lua作为解析型语言,其特点与使用具有自己的特点
lua作用域
local m = 1 --local
g = 2 --G table
function hi() --g table
local v = 2 --local
print( m) --upval
end
-- local, upval, table, tabup
lua面向对象编程
local Person = {}
function Person:init(name)
self . name = name
end
function Person:Say()
print(self.name)
end
local n = setmetatable({},{__index=Person})
n.init(n,name)
n.Say(n)
--- middleclass
特别
and
local a = b and c
--等价于
if not b then
a = b
else
a = c
end
print( 2 and 3) -- 3
print( nil and 3) -- nil
or
local a = b or c
--等价
if b then
a = b
else
a = c
end
print(1 or 2) -- 1
print(nil or 1) --1
不定参数
function m(...)
t(...)
end
function t(a,b,c)
print(a)
print(b)
print(c)
end
t(1,2)
-- 1 2 nil