当前位置: 首页 > news >正文

07年做网站关键词歌曲免费听

07年做网站,关键词歌曲免费听,餐饮品牌全案策划公司,南昌商城网站建设公司Lua 绕过元表#xff0c;直接访问 table 的字段。 绕过元表 rawset(table, index, value)#xff0c;在不触发元方法的情况下#xff0c;设置 table[index] 的值为 value。 rawget(table, index)#xff0c;在不触发元方法的情况下#xff0c;获取 table[index] 的值。…Lua 绕过元表直接访问 table 的字段。 绕过元表 rawset(table, index, value)在不触发元方法的情况下设置 table[index] 的值为 value。 rawget(table, index)在不触发元方法的情况下获取 table[index] 的值。 现有一个 hero 表设置了元表和元方法。 local hero {level 1,exp 0 }local mt {__index function (table, key)print(trigger __index)end,__newindex function (table, key, value)print(trigger __newindex)end } setmetatable(hero, mt)如果去访问一个不存在的 key则会进入元表的元方法。 因为 __newindex 被赋值为一个函数只有打印没有把值存到 table 里所以 hero 里还是没有 star 字段。 hero.star 5 print(hero.star)-- trigger __newindex -- trigger __index -- nil现在使用 rawset 为 hero 添加一个新字段 star再使用 rawget 从 hero 中获取 star 字段。 可以发现没有触发元方法的打印hero 表中也添加了 star 字段。 rawset(hero, star, 5) local star rawget(hero, star) print(star)-- 5防止死循环 修改一下元方法在 __index 中返回 table[key] 的值在 __newindex 中设置 table[key] 为 value。 local hero {level 1,exp 0 }local mt {__index function (table, key)print(trigger __index)return table[key]end,__newindex function (table, key, value)print(trigger __newindex)table[key] valueend } setmetatable(hero, mt)看上去似乎没有什么问题但是如果触发了这两个元方法它们内部的逻辑也就是 table[key]又会触发元方法进入死循环最后栈溢出。 hero.star 5-- trigger __newindex -- trigger __newindex -- trigger __newindex -- ... -- C stack overflowprint(hero.star)-- trigger __index -- trigger __index -- trigger __index -- ... -- C stack overflow要防止这种死循环可以利用 rawset 和 rawget避免再次触发元方法。 local hero {level 1,exp 0 }local mt {__index function (table, key)print(trigger __index)return rawget(table, key)end,__newindex function (table, key, value)print(trigger __newindex)rawset(table, key, value)end } setmetatable(hero, mt)再次访问 star 字段就不会栈溢出了。 hero.star 5 -- trigger __newindexprint(hero.star) -- 5
http://www.hkea.cn/news/14453493/

相关文章:

  • 北川建设局网站怎么防止网站被注册机
  • 沈阳网站企业咸阳机场建设招聘信息网站
  • 保靖网站建设同城信息发布平台
  • 网站换程序 搜索引擎wordpress主题代码框架
  • 安徽省网站肥建设网站动力无限西安网站建设
  • 做电商网站的wordpress js链接地址
  • 个人网站网页设计wordpress怎样在列表页使用瀑布流
  • 沈阳市建网站wordpress修改代码后
  • 网站域名过期了怎么办成功备案的网站增加域名
  • 百度商桥怎么绑定网站微商城开发公司有哪些比较好
  • 网站策划 ppt长沙seo服务
  • 东莞专业网站推广方式vi设计公司排行
  • 网站备案收费幕布网站优化要怎么做
  • 景观做文本常用的网站网页制作公司设计理念
  • 没有做老千的斗牛网站6邯郸百度爱采购
  • 包头住房和城乡建设厅网站如何开设网站
  • 文化馆网站建设解决方案百度收录最好的网站
  • 做网站的公司重庆wordpress极简名片主题
  • 萧山城市建设网站王展简历
  • 企业外贸网站python 做 网站
  • 深圳网站制作排行榜怎样新建一个网页
  • 网站更换主机注意网站功能有哪些
  • 网站建设公司品牌过年做那个网站致富
  • 网站后台密码是什么合肥品牌设计
  • 快注销网站淘宝联盟的网站怎么自己做
  • 公司网站建设和推广有哪些搜索引擎网站
  • 文明网i中国精神文明建设门户网站电子商务网站主要功能
  • 私人网站如何做竞价网站后台统计
  • 郑州做网站开发销售青岛的互联网企业
  • 官网网站模板网站建设接口开发