加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua --- __newindex 的使用规则

发布时间:2020-12-14 21:50:17 所属栏目:大数据 来源:网络整理
导读:1、如果 __newindex 是一个函数,在给 table 不存在的字段赋值的时候,会调用这个函数 2.如果 __newindex 是一个table,在给 table 不存在的字段赋值的时候,会直接给 __newindex 的 table 赋值 测试用例: 1 local Song = {name = " 南山南 " }; 2 3 local m

1、如果 __newindex 是一个函数,在给 table 不存在的字段赋值的时候,会调用这个函数
2.如果 __newindex 是一个table,在给 table 不存在的字段赋值的时候,会直接给 __newindex 的 table 赋值

测试用例:

 1 local Song = {name = "南山南"};
 2 
 3 local mt = 
 4 {
 5     __index = Song, 6     __newindex = function(table,key,val)
 7         print(key .. "是一个不存在的字段,不能对其赋值!");
 8     end
 9 };
10 
11 local animal = {}
12 setmetatable(animal,mt);
13 print(animal.name);
14 animal.name = "cat";  
15 
16 local tmp = {};
17 
18 local mt1 = 
19 {
20     __index = Song;
21     __newindex = tmp;
22 };
23 local animal1 = {};
24 setmetatable(animal1,mt1);
25 print(tmp.cat);
26 animal1.cat = "Cat";
27 print(tmp.cat);

编译结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读