lua元表學習
阿新 • • 發佈:2018-12-23
1 a = {1, 2} 2 b= {3, 4} 3 4 vector2 = {} 5 function vector2.Add(v1, v2) 6 if(v1 == nil or v2 == nil)then 7 return nil 8 end 9 local res = {} 10 res[1] = v1[1] + v2[1] 11 res[2] = v2[1] + v2[2] 12 return res; 13 end 14 15 vector2.__add = vector2.Add 16 17 setmetatable(a, vector2) 18 setmetatable(b, vector2) 19 20 res = a + b 21 22 print(res[1], res[2])
元表操作的一般流程
1.定義原始表
2.定義元表
3.定義元方法
4.設定元表
1 str1 = {"I", "love", "lua"} 2 3 myStr = {} 4 function myStr.ToString(str) 5 res = {} 6 for i = 1, #str do 7 res[i] = str[i] 8 end 9return table.concat(res, " ") 10 end 11 12 myStr.__tostring = myStr.ToString 13 14 setmetatable(str1, myStr) 15 16 print(myStr.ToString(str1))