加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua中的rawset函数

发布时间:2020-12-14 21:46:29 所属栏目:大数据 来源:网络整理
导读:lua中的rawset函数一般是传递表,索引和值,但我遇到了这段代码: rawset(tbl,name,{}) 和 rawset(tbl,function() end) Rawset函数返回一个表,那么在rawset函数中有一个表或函数来表示值是什么意思? 解决方法 参考手册: rawset (table,index,value) : Sets t
lua中的rawset函数一般是传递表,索引和值,但我遇到了这段代码:

rawset(tbl,name,{})

rawset(tbl,function() end)

Rawset函数返回一个表,那么在rawset函数中有一个表或函数来表示值是什么意思?

解决方法

参考手册:

rawset (table,index,value): Sets the real value of table[index] to value,without invoking any metamethod. table must be a table,index any value different from nil,and value any Lua value.

这意味着什么:

> table的metatable未被使用:这就是为什么它是“raw”set,该字段是直接添加的;没有原始,表的metatable将用于处理“set”动作;
>索引与nil不同的任何值:在Lua中,这实际上意味着除了nil之外的任何类型的Lua对象:数字,函数,另一个表等(Lua ref manual列出所有类型);
>值任何Lua值:与之前相同,但甚至可以是nil:如果设置为nil,则有效地从表中删除项目.

因此索引名称只表示该表是一个关联数组(除非名称是数字,但这会产生误导),在第一种情况下,关联值是另一个表,在第二种情况下,它是一个Lua函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读