lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  201 随笔 :: 0 文章 :: 12 评论 :: 21万 阅读

参考链接:

https://www.jianshu.com/p/78f0e050ddad

 

TestRawGetSet.lua

复制代码
 1 function TestRawGetSet()
 2     --rawget & rawset:绕过元表,直接获取或设置table的值
 3     local a = {a1 = 10}
 4     setmetatable(a, {
 5         __index = {a2 = 20},
 6         __newindex = function (t, key, value)
 7             print(key .. "_" .. value)
 8         end
 9     })
10 
11     print(a.a2) --20
12     print(rawget(a, "a2")) --nil
13     
14     a.a3 = 30 --a3_30
15     print(a.a3) --nil
16     rawset(a, "a3", 40)
17     print(a.a3) --40
18 end
19 
20 TestRawGetSet()
复制代码

 

posted on   艰苦奋斗中  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示