数组:修订间差异
(创建页面,内容为“'''数组'''(array)是铁锈1.15p11加入的一种数据结构。 数组可以存储多个同种类型的元素,在铁锈中,数组存储数量最大值为10000。 ==支持的类型== {| class="wikitable" |+数组支持的类型 |boolean |布尔值 |- |float |浮点数(更新日志未提到) |- |number |整数 |- |unit |单位 |} ==定义== 与普通内存一样,在[core]节中,可以使用<code>defineUnitMemory</code>和<code>@memory</code>…”) |
小 (加链接) |
||
| 第20行: | 第20行: | ||
==定义== | ==定义== | ||
与[[自定义内存|普通内存]]一样,在[core]节中,可以使用<code>defineUnitMemory</code>和<code>@memory</code>来定义数组,数组名字可以包含中文。 | |||
===通过defineUnitMemory定义=== | ===通过defineUnitMemory定义=== | ||
2023年2月20日 (一) 03:13的版本
数组(array)是铁锈1.15p11加入的一种数据结构。
数组可以存储多个同种类型的元素,在铁锈中,数组存储数量最大值为10000。
支持的类型
| boolean | 布尔值 |
| float | 浮点数(更新日志未提到) |
| number | 整数 |
| unit | 单位 |
定义
与普通内存一样,在[core]节中,可以使用defineUnitMemory和@memory来定义数组,数组名字可以包含中文。
通过defineUnitMemory定义
在[core]节中添加: defineUnitMemory:类型 名称[]
通过@memory定义
@memory是defineUnitMemory的快捷方式,通常由多行多个@memory组成。
单个@memory的格式为: @memory 名称:类型[]
| @memory的例子 |
|---|
@memory dir:float[] @memory amo:number[] @memory armor_f:unit[] |
引用
下标
下标是一个整数,用来索引数组的特定项。在铁锈中,数组下标从0开始。
单位内部引用
要引用单位内部的自定义内存,可以直接使用 memory.名称[下标] 。
跨单位引用
要引用其他单位的内存,可以使用readUnitMemory ,格式为单位引用.readUnitMemory('名称',type='类型',index='下标') 。
警告:截止1.15正式版,跨单位数组引用在下标中包含逻辑时只会返回第0项,为游戏bug
| readUnitMemory例子 |
|---|
self.customTarget1.readUnitMemory('a',type='number',index=114)
|
修改
在[action]中,可以通过setUnitMemory来直接修改内存的值,格式为setUnitMemory:名称[下标]=值 。
当修改的下标在数组中不存在时,数组大小将会更改为修改的下标。
| setUnitMemory例子 |
|---|
# [action] 中 setUnitMemory:a[1]=1,b=memory.b[memory.a[1]]+1 |
和内存一样,数组也可以通过[core]updateUnitMemory来更新。
专用用法
数组名.size返回数组大小(元素个数)数组名=null清空数组,大小变为0数组名.contains("数据")检测数组中是否包含这个数据[action]shrinkArrays移除数组中空的部分
| shrinkArrays例子 |
|---|
|
array a=1,2,null,3
|