目次
確認環境:Windows10 64bit
setmetatableを使用して配列を参照する
setmetatableを使用すると振る舞いを変える・動作を追加できます。
color1 = {a = "red"}
table1 = {
__index = function(table, key)
return "'" .. key .. "' does not exist"
end
}
setmetatable(color1,table1)
print(color1.a) -- red
print(color1.b) -- 'b' does not exist
1行目は、配列です。
9行目は、setmetatalbeで引数の1つめのcolorに引数の2つめのtable1を設定しています。
11行目は、キーのaは存在するので値のredが表示されます。
12行目は、キーのbは存在しないので存在しないという5行目で作成したメッセージが表示されます。
setmetatableを使用ないで配列を参照する
color1 = {a = "red"}
table1 = {
__index = function(table, key)
return "'" .. key .. "' does not exist"
end
}
print(color1.a) -- red
print(color1.b) -- nil
上記コードは、setmetatableがありません。
10行目は、存在しないキーのbを参照し、その結果nilが表示されます。
関連の記事