BZ易风

导航

 

元表

--元表
local a = {}
local meta_a = {}

--两个表相加,第一个参数是一个表,第二个参数也是一个表
-- meta_a 叫做a的元表
setmetatable(a,meta_a)    --设置a的元表

print("a的元表:",getmetatable(a));   --获取a的元表

-- 元表中有一个非常重要的key, __index键的用处
local b = {}
local meta_b = {
    __index = {
        name = "yifeng",
        age = 18,
        sex = 0,
    },
}
setmetatable(b,meta_b)
-- 特点
-- 当我们搜索一个表的key的时候,如果当前表有这个Key,那么优先在自己的表里查找;如果在当前的表里面没有搜索到,那么lua解释器会去这个表的元表里面的__index这个key所对应的表里面来查找
print(b.name)       --yifeng

 

posted on 2023-02-09 12:27  BZ易风  阅读(22)  评论(0编辑  收藏  举报