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

公司用dw做网站吗wordpress关闭缩略图

公司用dw做网站吗,wordpress关闭缩略图,网站免费认证联盟,江苏连云港网站制作公司元表与元方法的概念 Lua中每个值都可具有元表。元表是普通的Lua表,定义了原始值在某些特定操作下 的行为。 例如,当table作为加法的操作数时,Lua检查其“元表”中的“__add”字段是否有 个函数。如果有,Lua调用它执行加法。我们称“元表”中的“键(如__add)”为事件(event),称…元表与元方法的概念 Lua中每个值都可具有元表。元表是普通的Lua表,定义了原始值在某些特定操作下 的行为。 例如,当table作为加法的操作数时,Lua检查其“元表”中的“__add”字段是否有 个函数。如果有,Lua调用它执行加法。我们称“元表”中的“键(如__add)”为事件(event),称“值”为元方法(metamethod)。前述例子中的事件(event)是__add,元方法(metamethod)是执行加法的函数。 又例如使用元表我们可以定义Lua如何计算两个table的相加操作ab。当Lua试图对两个表进行相加时先检查两者之一是否有元表之后检查是否有一个叫__add的字段若找到则调用对应的值。__add 等即时字段其对应的值往往是一个函数或是table就是元方法。 自己的理解:可以理解为“元方法(metamethod)”只存在与“元表”中。或者认为在元表中元方法才有意义。 Lua创建新的table的同时不会创建元表但是可以使用“setmetatable”函数为table设置原表 当你通过键来访问table的时候如果这个键没有值那么Lua就会寻找该table的元表(metatable)(假定有metatable)中的__index键。如果__index 包含一个表格Lua会在表格中查找对应的键。如果__index包含一个函数的话Lua就会调用那个函数table和键会作为参数传递给函数。__index元方法查看表中元素是否存在如果不存在返回结构为nil;如果存在则由__index返回结果。 元方法 常用元方法 __add:加法 __sub:减法__mul:乘法__div:除法__unm:相反数__mod:取模__pow:乘幂__index:__newindex:等 关系类的元方法 除了加法减法这些算术类的操作之外,大于小于等这些关系类的操作也是有元方法的: __eq:等于__lt:小于__le:小于等于 如果对两个具备不同“元表”的值进行这些比较操作,就会报错,一定要注意,这和加减法的规则不一样。 测试用例 local mtab1 {} mtab1.Name mtab1 name -- 元方法:加法 mtab1.__add function(t1, t2)local val mtab1.__add-- print(val)return val end -- 元方法:减法 mtab1.__sub function(t1, t2)local val mtab1.__sub-- print(val)return val end -- 元方法:小于 mtab1.__lt function(t1, t2)local val mtab1.__ltprint(call metamethod:, val)math.randomseed(os.time())local rval math.random(1, 10)-- for i 1, 10 do-- rval math.random(1, 10)-- endreturn rval 5 endlocal mtab2 {} mtab2.Name mtab2 name -- 元方法:加法 mtab2.__add function(t1, t2)local val mtab2.__add-- print(val)return val end -- 元方法:减法 mtab2.__sub function(t1, t2)local val mtab2.__sub-- print(val)return val endlocal tab1 {} local tab2 {} local tab3 {} local tab4 {} -- 元方法:加法,如果没有将 tab4 这是为其它 table 的元表,好像没有意义 tab4.__add function(t1, t2)local val tab4.__add-- print(val)return val end--此 table 没有元表 local tab5_nomet {} -- 元方法:加法 tab5_nomet.__add function(t1, t2)local val tab5_nomet.__add-- print(val)return val endlocal tab6 {} local tab7 {}--此 table 没有元表 local tab8_nomet {}-- 为 table 表设置 元表 setmetatable(tab1, mtab1) setmetatable(tab2, mtab1) setmetatable(tab3, mtab2) setmetatable(tab4, {__index mtab1}) setmetatable(tab6, tab5_nomet) setmetatable(tab7, tab4)-------------------------------------------------------- 输出table表的地址 print(tab1, tab2, tab3, tab4, mtab1, mtab2) -- 输出tabled表的原表地址 -- getmetatable(tab1)与 getmetatable(tab2)的值相等是因为 tab1 与 tab2 的 元表 都是 mtab1 print(getmetatable(tab1),getmetatable(tab2),getmetatable(tab3),getmetatable(tab4),getmetatable(mtab1),getmetatable(mtab2) )-- 输出表 keyName 的值 print(tab1.Name,tab1.Name,,tab2.Name,tab2.Name,,tab3.Name,tab3.Name,,tab4.Name,tab4.Name,,mtab1.Name,mtab1.Name,,mtab2.Name,mtab2.Name ) ------------------------------------------------------------------------------------------------------------ -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 都没有元表。所以,报错:attempt to perform arithmetic on local mtab1 (a table value) -- print(mtab1 mtab2 ,mtab1 mtab2) ------------------------------------------------------ -- 相同元表:执行元表中的元方法 -- 输出:tab1 tab2 mtab1.__add print(tab1 tab2 , tab1 tab2) -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 输出:tab1 tab3 mtab1.__add print(tab1 tab3 , tab1 tab3) -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 输出:tab1 tab4 mtab1.__add print(tab1 tab4 , tab1 tab4) -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 输出:tab1 tab5_nomet mtab1.__add print(tab1 tab5_nomet , tab1 tab5_nomet) -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 输出:tab5_nomet tab1 mtab1.__add print(tab5_nomet tab1 , tab5_nomet tab1) -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- 输出:tab4 tab1 mtab1.__add print(tab4 tab1 , tab4 tab1) ------------------------------------------------------ -- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- tab4有原表,但是没有__add元方法,tab5_nomet也没有__add元方法。所以,报错:attempt to perform arithmetic on local tab4 (a table value) -- print(tab4 tab5_nomet ,tab4 tab5_nomet)-- 不同元表:第一个值有元表操作符前面,就以这个元表为准看是否有元方法,如果没有就看第二个元表是否有元方法。都没有元方法就会报错。 -- tab4有原表,但是没有__add元方法,tab5_nomet也没有__add元方法。所以,报错:attempt to perform arithmetic on local tab5_nomet (a table value) -- print(tab5_nomet tab4 , tab5_nomet tab4) ------------------------------------------------------ -- 输出:tab5_nomet tab6 tab5_nomet.__add print(tab5_nomet tab6 , tab5_nomet tab6) -- 输出:tab7 tab8_nomet tab4.__add print(tab7 tab8_nomet , tab7 tab8_nomet) -- 输出:tab7 tab4 tab4.__add print(tab7 tab4 , tab7 tab8_nomet) -------------------------------------------------------- 输出:tab1 tab2 boolean结果 print(tab1 tab2 , tab1 tab2) -- 如果对两个具备不同“元表”的值进行这些比较操作,就会报错,一定要注意,这和加减法的规则不一样。 -- 所以,报错:attempt to compare two table values -- print(tab1 tab3 , tab1 tab3) print(----------------) 测试用例输出结果 ---------------- table: 00C5C9A8 table: 00C5C8E0 table: 00C5C958 table: 00C5C9F8 table: 00C5C9D0 table: 00C5C7F0 table: 00C5C9D0 table: 00C5C9D0 table: 00C5C7F0 table: 00C5C8B8 nil nil tab1.Name nil ,tab2.Name nil ,tab3.Name nil ,tab4.Name mtab1 name ,mtab1.Name mtab1 name ,mtab2.Name mtab2 name tab1 tab2 mtab1.__add tab1 tab3 mtab1.__add tab1 tab4 mtab1.__add tab1 tab5_nomet mtab1.__add tab5_nomet tab1 mtab1.__add tab4 tab1 mtab1.__add tab5_nomet tab6 tab5_nomet.__add tab7 tab8_nomet tab4.__add tab7 tab4 tab4.__add call metamethod: mtab1.__lt tab1 tab2 true ----------------
http://www.yutouwan.com/news/43275/

相关文章:

  • 制作网站的知识企业网站建设的意义
  • 网站制作建站建设银行官方网站面试详细信息
  • 牡丹江0453免费信息网站北京公司网站设计价格
  • 常德网站建设设计网站公司图片
  • 网站开发pc和手机端好的html5网站
  • 网站建设及管理网站知识网站
  • 东莞建站多少钱微分销系统开发那家好
  • 营销型科技网站网站建设设计公司类网站织梦模板 带手机端
  • 酒业网站建设如何用代码制作网站
  • 营销型网站推广服务WordPress验证邮箱
  • 汕头网站建设技术托管wordpress返回上一个页面
  • 阅文集团旗下哪个网站做的最好wordpress产品筛选
  • 网站建设提议wordpress快速扒站
  • 佛山网站制作建设编程怎么学
  • 网站城市切换代码政务咨询投诉举报网站建设
  • 网站如何做360度全景开发个网站开票名称是什么
  • 上海建筑网站大全自己做的网站用在博客上
  • 深圳龙岗网站制作天津建设工程信息网招标文件澄清
  • 旅行社网站建设方案书wordpress 本地ajax
  • 做搜狗网站优化首页企业咨询管理服务
  • 怎么申请网站域名直接在wordpress官网写博客
  • 网站运营与推广计划书百度搜索风云榜排名
  • 如果是创建的网站国家高新技术企业标志
  • 营销型网站更受用户欢迎的原因是汽车之家汽车报价大全网页版
  • 做网站要看什么书郑州官网制做
  • 代做网站收费标准私密浏览器官网
  • 用来查数据的网站怎么建设企业网站开发项目策划书
  • 男女做那个网站动态图茗哥网站建设
  • WordPress建站教程 网盘互助平台网站建设费用
  • 网站设计师工资怎样2017电商网站建设背景