luaのテーブル
lua
のテーブルはfunction
を持つことができます。
> AnyType = { >> [1] = "SCALAR" >> ,[2] = "OBJECT" >> ,[3] = "ARRAY" >> } > > Any = { >> [1] = {attr = "required" , type = "Type" , name = "Any.type" , tag = 1} >> , [2] = {attr = "optional" , type = "Scalar" , name = "scalar" , tag = 2} >> , [3] = {attr = "optional" , type = "Object" , name = "obj" , tag = 3} >> , [4] = {attr = "optional" , type = "Array" , name = "array" , tag = 4} >> , type_fun = function(v) return AnyType[v] end >> } > > = Any[1]; table: 0x7fc353d03050 > return Any.type_fun function: 0x7fc353d02b40 > return Any.type_fun(1) SCALAR > return Any.type_fun(2) OBJECT > return Any.type_fun(3) ARRAY > return Any["type_fun"](3) ARRAY >