码迷,mamicode.com
首页 > Windows程序 > 详细

lua --- __newindex 的使用规则

时间:2019-03-04 19:22:04      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:pre   key   图片   UNC   meta   测试用例   ble   测试   结果   

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);

编译结果:

技术图片

lua --- __newindex 的使用规则

标签:pre   key   图片   UNC   meta   测试用例   ble   测试   结果   

原文地址:https://www.cnblogs.com/luguoshuai/p/10472196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!