查看“模板:Array/doc”的源代码
←
模板:Array/doc
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 简介 == 这是一个模拟数组形式生成结构化数据的模板,可以进行大量的存储、操作或传输数据,[[#在Lua中获取或构造]]。本质上就是一次声明多个命名有关联的变量。 因为未使用字符串处理,相对于使用字符串处理来分割参数的做法可以更安全地存储或传递数据。 == 用法 == 作为数组或数组成员的变量名都以“@array-innerArrayIdentifier:”为前缀,在使用时一般不需要关注这一点,这里只是提供一个说明。 === 构造数组 === <pre> {{array|new|name=数组名,必须传入 |数据1 |数据2 |数据... |{{array|in <!-- 可以在模板内部使用in继续添加数组,构建一个多维数组 --> |数据... |{{array|in |数据... }} }} |r=若r为true,则返回name参数的值}} </pre> === 取值与设置 === ==== ''get'' ==== <pre> {{array|get|数组名|第一维序号|第二维序号|第三维序号|...}} {{array|get|数组名|count}} {{array|get|数组名|第一维序号|count}} {{array|get|数组名|第一维序号|...第n维序号|count}} </pre> get可以获取数组成员的值,但若试图获取数组索引,则会失败并报错;若索引越界,则视为未定义行为。 ==== ''set'' ==== <pre> {{array|set|数组名|第一维序号|第二维序号|...|val=要设置的值}} </pre> set可以设置数组成员的值,但若试图对数组索引赋值,则会失败并报错;若索引越界,不会报错,但也不会更新count。 === 其他方法 === ==== ''push'' ==== <pre> {{array|push|数组名|第一维序号|第二维序号|...|val=要添加的值}} </pre> 在数组尾部追加一个值,其中定位要操作的数组的方法和get一致。 若设置了<code>r=true</code>,则返回追加后数组的长度。 ==== ''pop'' ==== <pre> {{array|pop|数组名|第一维序号|第二维序号|...}} </pre> 删除数组的最后一个值。若数组长度为0,则不进行任何操作。 若设置了<code>r=true</code>,则返回被删除的那个值。 ==== ''unshift'' ==== <pre> {{array|unshift|数组名|第一维序号|第二维序号|...|val=要添加的值}} </pre> 在数组头部追加一个值。 若设置了<code>r=true</code>,则返回追加后数组的长度。 ==== ''shift'' ==== <pre> {{array|shift|数组名|第一维序号|第二维序号|...}} </pre> 删除数组的第一个值。若数组长度为0,则不进行任何操作。 若设置了<code>r=true</code>,则返回被删除的那个值。 ==== ''getIndex'' ==== <pre> {{array|getIndex|数组名|第一维序号|第二维序号|...}} </pre> 获取数组的索引值。也可以获取到普通值,但因没有提示,所以并不推荐使用。 ==== ''ifIndex'' ==== <pre> {{array|ifIndex|数组索引}} </pre> 判断一个字符串是否为数组索引,是返回1,否返回空。 ==== ''splice'' ==== <pre> {{array|splice |index= 数组索引 |start= 操作起始位置,默认为1,不能超过要操作的数组的长度 |howmany= 要删除的成员数量,默认为1 |添加值... }} </pre> 操作数组的值,利用这个方法可以进行删除、添加、替换等操作。你可以把这个方法看作是JavaScript中数组的splice方法。 若设置了<code>r=true</code>,则返回新的数组长度。 ==== ''print'' ==== <pre> {{array|print|数组名|第一维序号|第二维序号|...}} </pre> 打印数组,用于检查数组当前的内容。 === 简写 === ==== 构造时简写 ==== 构造时也可以省略“new”。这时,数组的第一个值'''一定不能等于上面列出的方法中的任何一个(包括new)''',否则构造时将出现错误。 === 其他 === 所有的参数名“name”也可以写成“id”。 === 在Lua中获取或构造 === 请参考:[[Module:var-array]] == 示例 == === 示例{{n|init}} === <pre> {{array|new|name=arr |ab |cd |ef }} {{array|get|arr|2}} </pre> '''结果''':{{array|new|name=arr |ab |cd |ef }} {{array|get|arr|2}} === 示例{{n}} === <pre> {{array|id=student |{{array|in|shinobu|大宫忍|鬼畜木芥子}} |{{array|in|alice|爱丽丝}} }} {{array|get|student|1|1}}、{{array|get|student|2|2}} student1数据总数:{{array|get|student|1|count}} 尝试对内部数组1进行取值:{{array|get|student|1}} </pre> '''结果''':{{array|id=student |{{array|in|shinobu|大宫忍|鬼畜木芥子}} |{{array|in|alice|爱丽丝}} }} {{array|get|student|1|1}}、{{array|get|student|2|2}} student1数据总数:{{array|get|student|1|count}} 尝试对内部数组1进行取值:<strong class="error"><span class="scribunto-error" id="mw-scribunto-error-0">Lua错误:数组名无效。</span></strong> === 示例{{n}} === <pre> {{array|id=student |{{array|in|shinobu|大宫忍| {{array|in |短发|大和抚子 }} }} }} {{array|get|student|1|3|2}} </pre> '''结果''':{{array|id=student |{{array|in|shinobu|大宫忍| {{array|in |短发|大和抚子 }} }} }} {{array|get|student|1|3|2}} === 示例{{n}} === <pre> {{array|id=test |5,日,牧师 |4,火,牧师 |3,火,剑士 |3,水,法师 }} {{array|shift|test}} {{array|get|test|1}} </pre> '''结果''':{{array|id=test |5,日,牧师 |4,火,牧师 |3,火,剑士 |3,水,法师 }}{{array|shift|test}} {{array|get|test|1}} === 示例{{n}} === <pre> {{array|id=test |111 |222 |333 |444 |555 }} {{array|splice |index= {{array|getIndex|test}} |start=2 |howmany= 3 |aaa|bbb }} {{array|print|test}} </pre> {{array|id=test |111 |222 |333 |444 |555 }} {{array|splice |index= {{array|getIndex|test}} |start=2 |howmany= 3 |aaa|bbb }} '''结果''': {{array|print|test}} <!-- === 示例{{n}} === <pre> {{array|id=角色信息表 |{{array|in|5|日|牧师}} |{{array|in|4|火|牧师}} |{{array|in|3|火|剑士}} |{{array|in|3|水|法师}} }} {{array|unshiftSome|id={{array|getIndex|角色信息表}} |{{array|in|5|日|法师}} |{{array|in|5|风|炼金术师}} }} {{array|get|角色信息表|1|3}} {{array|get|角色信息表|2|3}} </pre> {{array|id=角色信息表 |{{array|in|5|日|牧师}} |{{array|in|4|火|牧师}} |{{array|in|3|火|剑士}} |{{array|in|3|水|法师}} }} {{array|unshiftSome|id={{array|getIndex|角色信息表}} |{{array|in|5|日|法师}} |{{array|in|5|风|炼金术师}} }} {{array|get|角色信息表|1|3}} {{array|get|角色信息表|2|3}} --> === 示例{{n}} === <pre> {{array|id=角色信息表 |{{array|in|5|日|牧师}} |{{array|in|4|火|牧师}} |{{array|in|3|火|剑士}} |{{array|in|3|水|法师}} }}<!-- -->{{loop|times=1|{{array|get|角色信息表|count}}|do=<nowiki><nowiki></nowiki> 稀有度:{{array|get|角色信息表|{{#var:times}}|1}}<br /> 职业:{{array|get|角色信息表|{{#var:times}}|2}}<br /> 属性:{{array|get|角色信息表|{{#var:times}}|3}}<br /> <br /> <nowiki><nowiki></nowiki> }} 打印数组:{{array|print|角色信息表}} </pre> {{array|id=角色信息表 |{{array|in|5|日|牧师}} |{{array|in|4|火|牧师}} |{{array|in|3|火|剑士}} |{{array|in|3|水|法师}} }}<!-- -->{{loop|times=1|{{array|get|角色信息表|count}}|do=<nowiki> 稀有度:{{array|get|角色信息表|{{#var:times}}|1}}<br /> 职业:{{array|get|角色信息表|{{#var:times}}|2}}<br /> 属性:{{array|get|角色信息表|{{#var:times}}|3}}<br /> <br /> </nowiki> }} 打印数组:{{array|print|角色信息表}} === 示例{{n}} === 使用{{tl|split}}将每个变量的值分割成3个数据,输出。 <pre> {{array|new|name=角色信息表 |5,日,牧师 |4,火,牧师 |3,火,剑士 |3,水,法师 }}<!-- -->{{#loop:times|1|{{array|get|角色信息表.count}} |{{#vardefine:info|{{array|get|角色信息表|{{#var:times}}}}}} {{split|{{#var:info}}|,|charaInfo}} 稀有度:{{#var:charaInfo1}}<br /> 属性:{{#var:charaInfo2}}<br /> 职业:{{#var:charaInfo3}}<br /> <br /> }} </pre> {{array|new|name=角色信息表 |5,日,牧师 |4,火,牧师 |3,火,剑士 |3,水,法师 }}<!-- -->{{#loop:times|1|{{array|get|角色信息表|count}} |{{#vardefine:info|{{array|get|角色信息表|{{#var:times}}}}}} {{split|{{#var:info}}|,|charaInfo}} 稀有度:{{#var:charaInfo1}}<br /> 属性:{{#var:charaInfo2}}<br /> 职业:{{#var:charaInfo3}}<br /> <br /> }} <includeonly>[[分类:辅助模板]]</includeonly> <noinclude>[[Category:模板说明文件]]</noinclude>
该页面使用的模板:
模板:Array
(
查看源代码
)
模板:FromOther/CN
(
查看源代码
)
模板:ICounter
(
查看源代码
)
模板:Loop
(
查看源代码
)
模板:N
(
查看源代码
)
模板:Namespace detect
(
查看源代码
)
模板:Split
(
查看源代码
)
模板:Tl
(
查看源代码
)
模块:Arguments
(
查看源代码
)
模块:Loop
(
查看源代码
)
模块:Split
(
查看源代码
)
模块:Var
(
查看源代码
)
模块:Var-array
(
查看源代码
)
模块:Var-array/main
(
查看源代码
)
返回至
模板:Array/doc
。
导航菜单
个人工具
登录
名字空间
模板
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
随机页面
最近更改
最新文件
常用
上传多个文件
工具
链入页面
相关更改
特殊页面
页面信息