Chapter 20_1 table库】的更多相关文章

table库是由一些辅助函数构成,把table作为数组来操作,所有的函数都忽略传入参数的那张表中的非数字键. 无论如何,若一个操作需要取表的长度,这个表必须是一个真序列,或是拥有__len元方法. 提供了这样一些功能:从列表中插入和删除元素.对元素排序.连接一个数组中所有字符串. 插入和删除 函数table.insert用于将一个元素插入到一个数组指定位置,然后移动后续元素. 例如数组t = {10,20,30},当调用table.insert(t,1,15)后,t = {15,10,20,30…
标准table库 table.concat(table, sep,  start, end) concat是concatenate(连锁, 连接)的缩写,table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素,元素间以指定的分隔符(sep)隔开.除了table外, 其他的参数都不是必须的, 分隔符的默认值是空字符,start的默认值是1,end的默认值是数组部分的总长. sep, start, end这三个参数是顺序读入的,所以虽然它们都不是必须…
从今天起,开始接触Lua的标准库(数学库.table库.字符库.I/O库.操作系统库.调试库). 一路走来,从最基本的变量.函数.迭代器.协同程序到稍微复杂的元表.元方法.环境.模块,以及最后被整蒙了的对象编程.继承.类.弱引用table.垃圾回收终结器.只要坚持下去,会慢慢吃透的! 首先从介绍数学库开始. 数学库这一章讲的不多,更多详细介绍参考Lua手册. math(数学)库由一组标准的数学函数构成,三角函数.指数.对数函数.取整函数.生成伪随机数的函数.以及变量pi和huge等等. 所有的三…
table属性 table库是有一些辅助函数构成的,这些函数将table作为数组来操作. 当中.有对列表中插入和删除元素的函数,有对数组元素进行排序的函数.还有对链接一个数组中全部字符串的函数. 0.table.getn()Lua 中我们常常假定 array 在最后一个非 nil 元素处结束. 也就是nil值后的元素不读取 这个传统的约定有一个弊端:我们的 array中不能拥有 nil 元素. 对大部分应用来说这个限制不是什么问题.比方当全部的 array 有固定的类型的时候. 但有些时候我们的…
这个库提供了表处理的通用函数. 所有函数都放在表 table. 无论何时,若一个操作需要取表的长度, 这张表必须是一个真序列. table.concat(list, [, sep, [, i , [, j]]]) 提供一个列表,其所有元素都是字符串或数字,返回字符串 list[i]..sep..list[i+1] ··· sep..list[j]. sep 的默认值是空串, i 的默认值是 1 , j 的默认值是 #list . 如果 i 比 j 大,返回空串. sep为元素之间的间隔符 loc…
位操作库是Lua5.2版本里添加的库,所有函数放在bit32 table里.(bit32只能针对32位整数运算) 在Lua5.3版本里,bit32库被废弃掉.不过可以使用一个外部兼容库,但是最好直接用对应的位操作符.标准Lua中的位操作可以用于64位整数. 位操作库不在新版本中,就不用花时间去了解.可以参考Lua5.3与Lua5.2的版本区别.…
lua提供了一些辅助函数来操作table. 比如,从list中insert和remove元素,对array的元素进行sort.或者concatenate数组中的全部strings.以下就具体地解说这些方法. insert and remove table.insert将一个元素插入到指定位置.比如: t = {1, 2, 3} table.insert(t, 1, 4} t的结果将是{4, 1, 2, 3} insert的第二个參数是能够省略的.这样就会插入到数组的最后,从而不必移动其它元素.相…
对象属性 有很多情况需要把有些属性绑定到某个对象,例如:函数与其名称.table的默认值.数组大小等... 当对象是一个table时,可以通过适当的key将属性存储在这个table中. 如果对象不是一个table,它就无法保存属性了. 另外,即使是table,有时也不想将属性存储在原table中.可以使用外部table来关联它们,将对象作为key,对象的属性作为value. 这个外部table可以保存任意对象的属性,Lua也允许将任何对象作为table的key. 另外,存储在外部对象中的属性不会…
前两节的算术类.关系类运算符的元方法都为各种错误情况定义了行为,它们不会改变语言的常规行为. 但是Lua还提供了两种可以改变table行为的方法: 一种是查询table中不存在的字段.一种是修改table中不存在的字段. __index元方法 当访问一个table中不存在的字段时,得到的结果为nil.这样的访问会促使解释器去查找一个叫__index的元方法. 如果没有这个元方法,那么访问结果就是nil. 一个有关继承的示例:假设要创建一些描述窗口的table,每个table中必须表述一些窗口参数…
函数列表: table.insert(table,[ pos,] value) table.remove(table[, pos]) table.concat(table[, sep[, i[, j]]]) table.sort(table[, comp]) 1. insert 和 remove 只能用于数组元素的插入和移出, 进行插入和移出时,会将后面的元素对齐起来.     所以在 for 循环中进行 insert 和 remove 的时候要注意插入和移除时是否漏掉了某些项:        …