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

服务器外面打不开网站网站seo规划

服务器外面打不开网站,网站seo规划,城市建设网站,怎么更改网站备案信息吗元表是一个普通的 Lua 表,包含一组元方法,这些元方法与 Lua 中的事件相关联。事件发生在 Lua 执行某些操作时,例如加法、字符串连接、比较等。元方法是普通的 Lua 函数,在特定事件发生时被调用。 元表包含了以下元方法&#xff1…

元表是一个普通的 Lua 表,包含一组元方法,这些元方法与 Lua 中的事件相关联。事件发生在 Lua 执行某些操作时,例如加法、字符串连接、比较等。元方法是普通的 Lua 函数,在特定事件发生时被调用。

元表包含了以下元方法:
__add: 加法(+)运算。如果加法的任何操作数不是数字,Lua 将尝试调用元方法。它首先检查第一个操作数(即使它是一个数字);如果该操作数没有定义 __add 的元方法,则 Lua 将检查第二个操作数。如果 Lua 可以找到一个元方法,它将使用两个操作数作为参数调用该元方法,并且调用的结果(调整为一个值)是该操作的结果。否则,如果没有找到元方法,Lua 将引发错误。
__sub: 减法(-)运算。行为类似于加法运算。
__mul: 乘法(*)运算。行为类似于加法运算。
__div: 除法(/)运算。行为类似于加法运算。
__mod: 取模(%)运算。行为类似于加法运算。
__pow: 幂运算(^)。行为类似于加法运算。
__unm: 取反(一元 -)运算。行为类似于加法运算。
__idiv: 取整除(//)运算。行为类似于加法运算。
__band: 按位 AND(&)运算。行为类似于加法运算,但如果任何操作数既不是整数也不是可强制转换为整数的浮点数,Lua 将尝试使用元方法(参见 §3.4.3)。
__bor: 按位 OR(|)运算。行为类似于按位 AND 运算。
__bxor: 按位异或(二进制 ~)运算。行为类似于按位 AND 运算。
__bnot: 按位 NOT(一元 ~)运算。行为类似于按位 AND 运算。
__shl: 位运算左移 (<<) 操作。行为类似于位运算 AND 操作。
__shr: 位运算右移 (>>) 操作。行为类似于位运算 AND 操作。
__concat: 连接 (..) 操作。行为类似于加法操作,但如果任何操作数既不是字符串也不是数字(始终可以强制转换为字符串),Lua 将尝试使用元方法。
__len: 长度 (#) 操作。如果对象不是字符串,Lua 将尝试其元方法。如果存在元方法,Lua 会将对象作为参数调用它,并且调用的结果(始终调整为一个值)是操作的结果。如果不存在元方法但对象是表,则 Lua 会使用表长度操作(参见 §3.4.7)。否则,Lua 会引发错误。
__eq: 等于 (==) 操作。行为类似于加法操作,但只有当要比较的值都是表或都是完整用户数据且它们不是原始相等时,Lua 才尝试使用元方法。调用的结果始终转换为布尔值。
__lt: 小于 (<) 操作。行为类似于加法操作,但只有当要比较的值既不是数字也不是字符串时,Lua 才尝试使用元方法。此外,调用的结果始终转换为布尔值。
__le: 小于等于 (<=) 操作。行为类似于小于操作。
__index: 索引访问操作 table[key]。当 table 不是表或当 key 不存在于 table 中时,会发生此事件。元值在 table 的元表中查找。

注:
​Lua 查找一个表元素时的规则如下 :

1.在表中查找,如果找到,返回该元素,找不到则继续
2.判断该表是否有元表,如果没有元表,返回 nil,有元表则继续。
3.判断元表有没有 __index 方法,如果 __index 方法为 nil,则返回 nil;如果 __index 方法是一个表,则重复 1、2、3;如果 __index 方法是一个函数,则返回该函数的返回值。

__newindex: 索引赋值 table[key] = value。与索引事件类似,当 table 不是表或当 key 不存在于 table 中时,会发生此事件。元值在 table 的元表中查找。

__call:调用操作 func(args)。当 Lua 尝试调用非函数值(即 func 不是函数)时,会发生此事件。元方法在 func 中查找。如果存在,则使用 func 作为第一个参数调用元方法,后跟原始调用的参数 (args)。调用的所有结果都是操作的结果。这是允许多个结果的唯一元方法。

下面使用lua元表和元方法模拟Vector3运算的例子:

local meta = {}
local vector3 = {}function vector3.new (x,y,z)local v = {x = x, y = y, z = z}setmetatable(v,meta);return v
endfunction vector3.add(v1,v2)return vector3.new(v1.x + v2.x,v1.y + v2.y,v1.z + v2.z)
endfunction vector3.substrct(v1,v2)return vector3.new(v1.x - v2.x,v1.y - v2.y,v1.z - v2.z)
endfunction vector3.multiply(v1, v2)return vector3.new(v1.x * v2.x,v1.y * v2.y,v1.z * v2.z)
endfunction vector3.Divide(v1,v2)return vector3.new(v1.x / v2.x,v1.y / v2.y,v1.z / v2.z)
endfunction vector3.equals(v1,v2)return v1.x - v2.x == 0 and v1.y - v2.y == 0 and v1.z - v2.z == 0
endfunction vector3.tostring(v)return "("..v.x.." , "..v.y.." , "..v.z..")"
endfunction printNil()return "__index :没有找到key值"
endfunction printNil2(mytable, key,value)return print("__newindex :没有key值")
endfunction printNil3(mytable, ...)for i,j in pairs({...}) doprint(i,j)endreturn "调用 call 方法";
endmeta.__add = vector3.add
meta.__sub = vector3.substrct
meta.__mul = vector3.multiply
meta.__div = vector3.Divide
meta.__eq = vector3.equals
meta.__tostring = vector3.tostring
--索引访问操作 table[key]。
--当 table 不是表或当 key 不存在于 table 中时,会发生此事件。
--元值在 table 的元表中查找
meta.__index = printNil
--索引赋值 table[key] = value。
--当 table 不是表或当 key 不存在于 table 中时,会发生此事件。
--元值在 table 的元表中查找
meta.__newindex = printNil2
--[[
调用操作 func(args)。当 Lua 尝试调用非函数值(即 func 不是函数)时,会发生此事件。
元方法在 func 中查找。如果存在,则使用 func 作为第一个参数调用元方法,
后跟原始调用的参数 (args)。调用的所有结果都是操作的结果。这是允许多个结果的唯一元方法。
]]
meta.__call = printNil3local pos1 = vector3.new(5,6,7)
local pos2 = vector3.new(8,9,10)print(pos1 + pos2)
print(pos1 - pos2)
print(pos1 * pos2)
print(pos1 / pos2)
print(pos1 == pos2)
print(pos1.w)
pos1.rotation = pos2
print(pos1(2,3,4,5,6))

 结果:

参考书籍与链接:

《Lua程序设计》

Metamethods - Lua Tutorial (Part 16) (youtube.com)

Master the Lua Scripting Language (pikuma.com)

lua-users wiki:Lua 目录 - Lua 编程语言

http://www.yayakq.cn/news/560430/

相关文章:

  • 深圳有做网站的吗岐山县住房和城市建设局网站
  • 记事本做网站背景侯马市网站建设公司
  • 专门做女性产品的网站速度快的wordpress主机
  • 怎样在阿里巴巴上做网站计算机网站开发国外参考文献
  • 南通优普网站建设团队看广告赚钱的平台
  • 建设网站的企业wordpress标题标签
  • 钦州网站建设设计做网站公司怎么推销
  • 我想做个网站怎么做做网站上数字快速增加
  • 2008 iis搭建网站杭州注册公司
  • 外贸营销型网站建设公司建e网六面图合成顺序
  • 做网站被骗怎么办佛山新网站建设怎么样
  • aws 虚机wordpress教程网站开发 seo
  • 做书app下载网站有哪些frontpage2007网站建设
  • 动易的网站能否静态网站搭建行业
  • 网站子站建设合同样本沈阳犀牛云做网站怎么样
  • 昆山网站建设河北浙江城乡住房建设厅网站首页
  • 免费个人网站建站申请一下wape
  • thinkphp可以做网站吗大型国有企业网站建设
  • 做一些好玩的个人网站怎么做网站视频
  • python可以做复杂网站南京软月网站建设公司
  • 网站建设培训班网站建设营销解决方案
  • 个人网站怎么申请服装公司网页设计
  • 网站栏目页怎么做做婚纱摄影网站
  • wordpress 建站服务如何做网站优化并快速提高权重
  • 一个新网站做多久才有流量转化分析一个网站
  • 英山县城乡建设规划局网站广告公司简介免费
  • 域名备案 没有网站吗北京专业建设网站公司哪家好
  • 南宁模板建站平台WordPress创建简码
  • 哪些企业会考虑做网站东莞黄江做网站公司
  • 杭州网站设计公司哪家好wordpress目录重写