把lua搞成面向对象吧!

文章目录

  • 把lua搞成面向对象吧!

把lua搞成面向对象吧!

mytable = setmetatable({
     key1 = "value1"}, {
     
  __index = function(mytable, key)
    if key == "key2" then
      return "metatablevalue"
    else
      return nil
    end
  end
})




function mytable.withdraw ()
    print("dfsg")
end
mytable.withdraw()

  • 我曾经遇到过上面会报错
  • 后来我就把函数放到第一个花括号里面
    • 就像下面这样

mytable = setmetatable({
     name = "value1", age =123 ,

func1 =
function ()
print("func1")
end


}, {
     
  __index = function(mytable, key)
    if key == "key2" then
      return "metatablevalue"
    else
      return nil
    end
  end
})




function mytable.withdraw ()
    print("dfsg")
end
mytable.withdraw()
mytable.func1()

你可能感兴趣的:(lua系列)