一、返回table
local function newAccount( initCount)
local self = { count = initCount}
set = function( c)
self.count = c
end
get = function( )
return self.count
end
-- body
return {
set = set,
get = get
}
end
测试:
local acc = newAccount(10)
print( acc.get())
acc.set(100)
print( acc.get())
local acc1 = newAccount(20)
print( acc.get())
print( acc1.get())
运行结果
10
100
100
20
二、返回单一的操作函数
local function newObject( initCount)
-- body
return function( opr,v)
if opr == "get" then
return initCount
elseif opr == "set" then
initCount = v
else
print(" unknown opr : "..opr)
end
end
end
测试:
local obj = newObject(100)
print(obj("get"))
print(obj("set",30))
print(obj("post"))
print(obj("get"))
运算结果
100
unknown opr : post
30