帮助:模块/表
来自心百科,心灵的百科全书
模块 <
表table
是Lua中的一种数据类型,是一种功能非常丰富的数据类型。
基本概念
Lua的table
是一种关联型的数组,每个值都有一个与之对应的索引,索引一般使用字符串(string
)或是数值(number
)。
table
并不固定大小,随着添加的索引越来越多,会自动扩容。
在Lua中,table
除了用来当做其他变成语言中的list(列表),dictionary(字典)或是array(数组)等数据类型外,还用来解决模块、包(package)和对象(object)这些功能的实现。
例如string
库,实际上就是一个名叫string的table,而string.find
函数,实际上是在这个table中,用find做索引对应到的那个函数。
<callout>需要注意的是,Lua的表从1
开始索引,而不是0
</callout>
基本使用
以下为table
的最基本使用方法:
-- 通过给变量赋值 {} 来初始化一个table -- 所有table使用前必须初始化 local test = {} -- 通过[ ]选中一个索引进行赋值 test[1] = 'Hello' test['name'] = 'Huiji' -- 通过赋值 nil 删除一个索引对应的内容 test[1] = nil -- 通过赋值 nil 删除table test = nil
表的索引
这里给定一个table
local table = { ['name'] = 'hello', ['age'] = 18, ['job'] = 'unkonwn' }
那么:
table['name']
的值就是'hello'
(key是‘name’的值)table[1]
的值是nil
(因为表中没有以[1]为索引的内容)
如果表中间有嵌套
local table = { ['name'] = { ['first'] = 'hello', ['second'] = 'world' }, ['age'] = 18, ['job'] = 'unkonwn' }
那么:
table['name']['first']
的值是'hello'
常见形态
在Mediawiki的Lua中,table
一般用于:
形式 | 说明 |
---|---|
数组 | 数组形式的table 索引是从1开始,依次递增的自然数索引。数组类的table 会有许多额外的特性,请参考数组
|
字典 | 字典形式的table 索引是比较随意的值
|
模块 | 每个模块内容页(命名空间为Module 或模块 ),都需要对应一个table
|
对象 | 该内容不适合初学者 用于面向对象编程中,对象object的实现。由于比较深入了,如有兴趣请自行参阅其他文档,本帮助中不进行详解。 |
获取值
如果想循环获取table
中的索引和值的话,可以使用循环结构