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

腾讯wordpress 建站教程湘潭网站seo磐石网络

腾讯wordpress 建站教程,湘潭网站seo磐石网络,做网站编辑好吗,现代简约装修针对在两种正常状态#xff1a;表的不存在的域的查询和修改#xff0c;Lua也提供了改变 tables的行为的方法。 index metamethod 我们可以通过index元方法来实现访问table内部不存在的域时人为操控返回数据。 比如以下测试代码#xff1a; local set {1,2,3} setmetata…针对在两种正常状态表的不存在的域的查询和修改Lua也提供了改变 tables的行为的方法。 index metamethod 我们可以通过index元方法来实现访问table内部不存在的域时人为操控返回数据。 比如以下测试代码 local set {1,2,3} setmetatable(set,{__index function (t, k)print(index func ..k)end }) print(set[4]) --index func 4 nilset {} print(set[4]) --nil 由上可以看出当我们去访问表内不存在的域时会走一遍__index函数并取得相应返回值。同时我们需要注意的是在后期重新赋值整表的时候其metatable已经刷新所以再次访问不存在的域时已不存在之前的效果。 __index同样可以是一个table类型而非函数类型这样的意义即如若访问不存在的域则寻找这个table B否则则查找这个table B的__index metamethod。 local A {1,2,3} local B {[a] 4,[b] 5} setmetatable(B,{__index function (t,k)print(test B index func)end }) setmetatable(A,{__index B }) print(A[a]) --4 print(A[b]) --5 print(A[c]) --test B index func 因此则可以引出lua的重要概念继承通过index函数可以实现没找到原table的域时可以从父类寻找。 如若不想经过index操作则直接调用rawget(t,i)来寻找相应值。 newindex metamethod __newindex metamethod在对表缺少的域赋值的时候会被调用注意调用了__newindex之后并不会自动进行赋值操作意味着在newindex函数里需要手动赋值才行。参考如下代码 local A {1,2,3} setmetatable(A,{__newindex function (t, k, v)print(test A newindex func)end }) A[4] 4 --test A newindex func for i 1,4 doprint(A[i]) -- 1 2 3 nil end 可以发现赋值了key4之后的A[4]访问值依然为nil说明newindex内部仍然需要显式加上t[k] v才可。 如若不想经过newindex操作则直接调用rawset(t,k,v)来进行表的赋值。 默认值的表 直接重写index函数如若访问到了不存在的域则默认返回某值即可参考如下代码 local A {1,2,3} setmetatable(A,{__index function (t, k)return 1end }) for i 1,4 doprint(A[i]) -- 1 2 3 1 end 当然如果担心每个对象都需要默认值访问逻辑但是默认值都不同也可以表内部维护一个local table变量__index实际上就是调用这个local变量里的某个键值对即可如下所示 local A {1,2,3} local key {} setmetatable(A,{__index function (t, k)return A[key]end })A[key] 1 --如果后续每个对象都需要不同的默认值则直接修改即可不用担心冲突 for i 1,4 doprint(A[i]) -- 1 2 3 1 end 监控表 顾名思义当我们对某个表进行赋值或者访问操作时需要进行记录。我们可以创建一个代理表这个代理表不存储任何数据修改__index和__newindex函数来输出记录并定位至原表如下所示 local A {1,2,3} function Record(tb)local proxy {}setmetatable(proxy,{__index function (t, k)print(index)return tb[k]end,__newindex function (t, k, v)print(newindex)tb[k] vend})return proxy endlocal proxy Record(A) for i 1,3 doprint(proxy[i]) --[[index1index2index3]]-- end proxy[4] 4 --newindex 只不过类似pairs的操作是无效的因为proxy本身就是空表。 只读表 参考之前的博客lua只读表-CSDN博客
http://www.w-s-a.com/news/519569/

相关文章:

  • 专门用来查找网址的网站查公司名字是否被注册
  • 自己创建网站教程河南省建设厅官方网站李学军
  • 一个网站需要多少容量怎样免费设计网站建设
  • 建设工程交易中心网站12306的网站是哪个公司做的
  • 建设网站经营范围自己给公司做网站
  • 河北省住房建设厅政务网站网络营销推广的岗位职责有哪些
  • 上海网站建设优化价格孝义做网站的公司
  • 哪个公司网站做的最好义乌 网站 制作
  • 百度站长工具综合查询wordpress 上传pdf
  • 旅游短租公寓网站建设深圳龙岗招聘网
  • 做海淘是在哪个网站网络查控系统设计方案
  • o2o网站建设代理商微信公众号开发文档
  • 网站设计课程总结关于网站备案的公告
  • 网站建设与运营意义到哪查找网站域名
  • 网站及单位网站建设情况眉县住房和城市建设局网站
  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站