数组

类别: 内置类型

简要说明

通用数组数据类型。

方法

Array

Array ( PoolColorArray from )

Array

Array ( PoolVector3Array from )

Array

Array ( PoolVector2Array from )

Array

Array ( PoolStringArray from )

Array

Array ( PoolRealArray from )

Array

Array ( PoolIntArray from )

Array

Array ( PoolByteArray from )

无效

append ( Variant value )

Variant

back ( )

int

bsearch ( Variant value, bool before=True )

int

bsearch_custom ( Variant value, Object obj, String func, bool before=True )

无效

clear ( )

int

count ( Variant value )

Array

duplicate ( bool deep=False )

bool

empty ( )

无效

erase ( Variant value )

int

find ( Variant what, int from=0 )

int

find_last ( Variant value )

Variant

front ( )

bool

has ( Variant value )

int

hash ( )

无效

insert ( int position, Variant value )

无效

invert ( )

Variant

max ( )

Variant

min ( )

Variant

pop_back ( )

Variant

pop_front ( )

无效

push_back ( Variant value )

无效

push_front ( Variant value )

无效

remove ( int position )

无效

resize ( int size )

int

rfind ( Variant what, int from=-1 )

无效

shuffle ( )

int

size ( )

无效

sort ( )

无效

sort_custom ( Object obj, String func )

描述

包含任意类型的多个元素的泛型数组,可由从0开始的数字索引访问。负索引可以用于从后面计数,就像在Python中一样(1是最后一个元素,2是最后一个元素,等等)。

例子:

var array = ["One", 2, 3, "Four"]
print(array[0])   # One
print(array[2])   # 3
print(array[-1])  # Four
array[2] = "Three"
print(array[-2])  # Three

数组始终通过引用传递。

方法说明

PoolColorArray .

PoolVector3Array .

PoolVector2Array .

PoolStringArray .

PoolRealArray .

PoolIntArray .

PoolByteArray .

在数组末尾附加一个元素(数组的别名 push_back

如果数组不是空的,则返回数组的最后一个元素。

使用二进制搜索查找现有值的索引(或保持排序顺序的插入索引,如果该值尚未出现在数组中)。可选,a before 无法传递说明符。如果 false ,返回的索引位于数组中该值的所有现有条目之后。

注: 调用 bsearch 在未排序的数组上会导致意外的行为。

使用二进制搜索和自定义比较方法查找现有值的索引(或保持排序顺序的插入索引,如果该值尚未出现在数组中)。可选,a before 无法传递说明符。如果 false ,返回的索引位于数组中该值的所有现有条目之后。自定义方法接收两个参数(数组中的元素和搜索到的值),必须返回 true 如果第一个参数小于第二个参数,则返回 false 否则。

注: 调用 bsearch 在未排序的数组上会导致意外的行为。

  • void clear ( )

清除数组。这相当于使用 resize 尺寸为 0 .

返回元素在数组中的次数。

返回数组的副本。

如果 deeptrue ,将执行深度复制:所有嵌套数组和字典都是重复的,不会与原始数组共享。如果 false ,将进行一个浅复制,并保留对原始嵌套数组和字典的引用,这样修改副本中的子数组或字典也会影响源数组中引用的数组或字典。

返回 true 如果数组为空。

从数组中移除值的第一个匹配项。

在数组中搜索值并返回其索引,如果找不到,则返回-1。或者,可以传递初始搜索索引。

以相反的顺序搜索数组中的某个值,如果找不到该值,则返回其索引或-1。

如果数组不是空的,则返回数组的第一个元素。

返回 true 如果数组包含给定值。

["inside", 7].has("inside") == true
["inside", 7].has("outside") == false
["inside", 7].has(7) == true
["inside", 7].has("7") == false

返回表示数组内容的哈希整数值。

在数组的给定位置插入新元素。位置必须有效,或在数组末尾 (pos == size()

  • void invert ( )

反转数组中元素的顺序。

如果所有元素都是可比较类型,则返回数组中包含的最大值。如果无法比较元素, null 返回。

如果所有元素都是可比较类型,则返回数组中包含的最小值。如果无法比较元素, null 返回。

删除数组的最后一个元素。

删除数组的第一个元素。

在数组末尾附加元素。

  • void push_front ( Variant value )

在数组的开头添加元素。

  • void remove ( int position )

按索引从数组中删除元素。

  • void resize ( int size )

调整数组大小以包含不同数量的元素。如果数组大小较小,则清除元素;如果较大,则清除新元素 null .

按相反顺序搜索数组。或者,可以传递开始搜索索引。如果为负,则认为起始索引相对于数组的结尾。

  • void shuffle ( )

对数组进行无序排列,使项目具有随机顺序。此方法使用了全局随机数生成器,这些生成器与 @GDScript.randi . 呼叫 @GDScript.randomize 以确保每次使用一个新的种子,如果你想不可再生的洗牌。

返回数组中的元素数。

  • void sort ( )

对数组排序。

注: 字符串按字母顺序排序,而不是按自然顺序排序。

使用自定义方法对数组排序。参数是一个包含方法和此类方法名称的对象。自定义方法接收两个参数(数组中的一对元素),必须返回 true 如果第一个参数小于第二个参数,则返回 false 否则。

注: 不能随机化返回值,因为heapsort算法需要确定的结果。这样做会导致意外行为。

class MyCustomSorter:
    static func sort(a, b):
        if a[0] < b[0]:
            return true
        return false

var my_items = [[5, "Potato"], [9, "Rice"], [4, "Tomato"]]
my_items.sort_custom(MyCustomSorter, "sort")