跳到主要内容

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,]

数组始终通过引用传递。

返回值类型方法名称
ArrayArray(#method-Array)(from: PoolColorArray)
ArrayArray(#method-Array)(from: PoolVector3Array)
ArrayArray(#method-Array)(from: PoolVector2Array)
ArrayArray(#method-Array)(from: PoolStringArray)
ArrayArray(#method-Array)(from: PoolRealArray)
ArrayArray(#method-Array)(from: PoolIntArray)
ArrayArray(#method-Array)(from: PoolByteArray)
append(value: Variant)
Variantback()
intbsearch(value: Variant, before: bool = true)
intbsearch_custom(value: Variant, obj: Object, func: String, before: bool = true)
clear()
intcount(value: Variant)
Arrayduplicate(deep: bool = false)
boolempty()
erase(value: Variant)
intfind(what: Variant, from: int = 0)
intfind_last(value: Variant)
Variantfront()
boolhas(value: Variant)
inthash()
insert(position: int, value: Variant)
invert()
Variantmax()
Variantmin()
Variantpop_back()
Variantpop_front()
push_back(value: Variant)
push_front(value: Variant)
remove(position: int)
resize(size: int)
intrfind(what: Variant, from: int = -1)
shuffle()
intsize()
Arrayslice(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)

返回数组的副本。

如果deeptrue,则执行深层复制:所有嵌套的数组和字典都是重复的,不会与原始数组共享。


  • 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)

复制函数中描述的子集,并将其返回到数组中,如果deeptrue,则深度复制该数组。


  • 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]].