新手程序员的lua表
来源:互联网 发布:电脑网络开关设置 编辑:程序博客网 时间:2024/05/18 13:29
第一次写博客大家多多包涵
刚开始学习lua对于 还不是很了解这门语言 但是lua语言有个非常强大的表 熟练运用表就能更加熟练运用lua语言 下面是我在lua表的运用中表的一些理解 参考了多个 大佬的经验自己的一些理解。有错误和不足的地方 请各位指教.
Lua中的表:参考:http://www.runoob.com/lua/lua-tables.html
Lua table 是lua中的一种数据结构 相当于c\c++中的结构体,也相当于map。
表: lua_table = {}, 在表中同时也可以套多个表,
如:lua_table[1] = {}; lua_ table[2] = 123; lua_table[“helloworld”] = “helloworld”
如上 lua中的表的索引可以用任意值,但是值不能为nil,并且 如上所述,表可以直接初始化。
如果我们设置了一个表lua_table = {a = 1 ,b = “hello” } ,同时 让other_table = lua_table,那么我们修改other_table[b] = “world”,那么print(lua_table[a],”,”,lua_table[b] )的输出结果就会为1,world.与此同时若吧other_table = nil 那么lua_table 同时也能打印。
这里说明了当表 = 表的时候 不是用的拷贝或复制,更像是一种引用。
这里顺便写一个表的拷贝复制的方法:
function table_copy(main_tab)
if type(main_tab) ~= "table" then
return nil
end
local one_tab = {}
for k,v in pairs(main_tab) do
local v_type = type(v)
if v_type == "table" then
one_tab[k] = table_copy(v)
else
one_tab[k] = v
end
end
return one_tab
end
--==表的长度
表的长度:参考自:http://blog.csdn.net/qq_32319583/article/details/53384945
取长度操作符写作一元操作 #。 字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。
表的长度可以用#来获取:lua_table = {1,2,3}; print(#lua_table);的打印结果为3
然而,对于一些特殊的表 如:lua_table_1 = {1, a = 2, 3,}; 那么打印出的表print(#lua_table_1)的结果就为2。首先lua_table_1是一个特殊的表 ,混合了列表(list)和记录(record)两种风格。然后record风格是不做为外表的长度计算的。更像一个函数,跟其他面向对象一样,函数是不记为内部变量的。a的输出值就直接print(lua_table_1.a)就可以了。
注意:在table中不要使用nil,如果不用的元素尽量remove掉,不要置空。
--==表的一些方法
Table的操作常用的方法:
table.concat();concat是concatenate(连锁,连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素,元素间以指定的分隔符(sep)隔开。
concat 可以将 table的数组部分拼接成一个字符串,中间用 seq分隔。
table.insert (table, [pos,] value):
在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选,默认为数组部分末尾.
table.remove (table [, pos])
返回table数组部分位于pos位置的元素.其后的元素会被前移. pos参数可选,默认为table长度,即从最后一个元素删起。
table.sort (table [, comp])
对给定的table进行升序排序。
以上不足的后期补充
- 新手程序员的lua表
- 程序员新手的建议
- 程序员新手的发展
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 写给新手程序员的一封信
- 《写给新手程序员的一封信》
- 《写给新手程序员的一封信》
- 获取版本号
- 人工智能:学习用对抗神经网络加密来保护通信
- linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)
- sql函数 求两个日期的间隔 返回分钟数
- 【BZOJ】T3240 矩阵游戏
- 新手程序员的lua表
- openstack storlet 文档(四):storlet引擎
- Aidl
- Bootstrap Table使用整理(五)-分页组合查询
- 网络自媒体人范亮亮的陈年旧事
- java 无序数组中两个元素相加等于指定的数 o(n)
- kali安装tor
- [第七季]8.通过JQuery获取或者设置网页元素的值
- KeyguardManager(判断安全密码)