Array
简要描述
通用数组数据类型。
描述
泛型数组,可以包含任何类型的多个元素,可通过从0开始的数字索引进行访问。负索引可用于从后面进行计数,例如在Python中(-1是最后一个元素,-2是倒数第二个元素,依此类推)
示例:
var array = [2,]
print(array[0]) # One.
print(array[2]) # 3.
print(array[-1]) # Four.
array[2] = "Three"
print(array[-2]) # Three.
Arrays can be concatenated using the +
operator:
var array1 = [2]
var array2 = ["Four"]
print(array1 + array2) # [2,]
数组始终通过引用传递。
返回值类型 | 方法名称 |
---|---|
Array | Array(#method-Array)(from: PoolColorArray) |
Array | Array(#method-Array)(from: PoolVector3Array) |
Array | Array(#method-Array)(from: PoolVector2Array) |
Array | Array(#method-Array)(from: PoolStringArray) |
Array | Array(#method-Array)(from: PoolRealArray) |
Array | Array(#method-Array)(from: PoolIntArray) |
Array | Array(#method-Array)(from: PoolByteArray) |
append(value: Variant) | |
Variant | back() |
int | bsearch(value: Variant, before: bool = true) |
int | bsearch_custom(value: Variant, obj: Object, func: String, before: bool = true) |
clear() | |
int | count(value: Variant) |
Array | duplicate(deep: bool = false) |
bool | empty() |
erase(value: Variant) | |
int | find(what: Variant, from: int = 0) |
int | find_last(value: Variant) |
Variant | front() |
bool | has(value: Variant) |
int | hash() |
insert(position: int, value: Variant) | |
invert() | |
Variant | max() |
Variant | min() |
Variant | pop_back() |
Variant | pop_front() |
push_back(value: Variant) | |
push_front(value: Variant) | |
remove(position: int) | |
resize(size: int) | |
int | rfind(what: Variant, from: int = -1) |
shuffle() | |
int | size() |
Array | slice(begin: int, end: int, step: int = 1, deep: bool = false) |
sort() | |
sort_custom(obj: Object, func: String) |
方法说明
- Array Array(from: PoolColorArray)
从PoolColorArray构造一个数组。
- Array Array(from: PoolVector3Array)
从PoolVector3Array构造一个数组。
- Array Array(from: PoolVector2Array)
从PoolVector2Array构造一个数组。
- Array Array(from: PoolStringArray)
从PoolStringArray构造一个数组。
- Array Array(from: PoolRealArray)
从PoolRealArray构造一个数组。
- Array Array(from: PoolIntArray)
从PoolIntArray构造一个数组。
- Array Array(from: PoolByteArray)
从PoolByteArray构造一个数组。
- append append(value: Variant)
在数组末尾添加一个元素(push_back的别名)。
- back back()
返回数组的最后一个元素,如果数组为空,则返回null
。
- bsearch bsearch(value: Variant, before: bool = true)
使用二进制搜索查找现有值的索引(如果数组中尚不存在该值,则为保留排序顺序的插入索引)。
注意:在未排序的数组上调用bsearch会导致意外行为。
- bsearch_custom bsearch_custom(value: Variant, obj: Object, func: String, before: bool = true)
使用二进制搜索和自定义比较方法查找现有值的索引(如果数组中尚不存在该值,则为保留排序顺序的插入索引)。
注意:在未排序的数组上调用bsearch会导致意外行为。
- clear clear()
清除数组。
- count count(value: Variant)
返回元素在数组中的次数。
- duplicate duplicate(deep: bool = false)
返回数组的副本。
如果deep
为true
,则执行深层复制:所有嵌套的数组和字典都是重复的,不会与原始数组共享。
- empty empty()
如果数组为空,则返回true
。
- erase erase(value: Variant)
从数组中删除第一次出现的值。
- find find(what: Variant, from: int = 0)
在数组中搜索一个值,并返回其索引;如果找不到,则返回-1。
- find_last find_last(value: Variant)
以相反的顺序搜索值的数组,并返回其索引;如果找不到,则返回-1。
- front front()
返回数组的第一个元素,如果数组为空,则返回null
。
- has has(value: Variant)
如果数组包含给定值,则返回true
。
[inside”,7] .has(“ inside”)== true
[inside”,7] .has(“ outside”)==false
[inside”,7] .has(7)== true
[inside”,7] .has(“ 7”)==false
- hash hash()
返回表示数组内容的哈希整数值。
- insert insert(position: int, value: Variant)
在数组中的给定位置插入一个新元素。
- invert invert()
反转数组中元素的顺序。
- max max()
如果所有元素都是可比较类型,则返回数组中包含的最大值。
- min min()
如果所有元素都是可比较的类型,则返回数组中包含的最小值。
- pop_back pop_back()
删除并返回数组的最后一个元素。
- pop_front pop_front()
删除并返回数组的第一个元素。
- push_back push_back(value: Variant)
在数组的末尾追加一个元素。
- push_front push_front(value: Variant)
在数组的开头添加一个元素。
- remove remove(position: int)
通过索引从数组中删除一个元素。
- resize resize(size: int)
调整数组的大小以包含不同数量的元素。
- rfind rfind(what: Variant, from: int = -1)
以相反的顺序搜索数组。
- shuffle shuffle()
随机排列数组,使项目具有随机顺序。
- size size()
返回数组中的元素数。
- slice slice(begin: int, end: int, step: int = 1, deep: bool = false)
复制函数中描述的子集,并将其返回到数组中,如果deep
为true
,则深度复制该数组。
- sort sort()
对数组进行排序。
注意:字符串按字母顺序(相对于自然顺序)排序。
var strings = ["string2",]
strings.sort()
print(strings) # Prints [string10,]
- sort_custom sort_custom(obj: Object, func: String)
使用自定义方法对数组进行排序。
注意:您不能将返回值随机化,因为堆排序算法需要确定性的结果。
class MyCustomSorter:
static func sort_ascending(a, b):
if a[0] < b[0]:
return true
return false
var my_items = [["Potato"], ["Rice"], ["Tomato"]]
my_items.sort_custom(MyCustomSorter, "sort_ascending")
print(my_items) # Prints [[Tomato], [Potato], [Rice]].