IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

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
>