数组
数组是存储在一起的值/项的集合。
在 GDScript 中,数组可以包含不同数据类型的值。
var example = [] # an empty array
var anotherExample = [1, "hello", true] # an array with different data types
您可以从数组中检索单个元素:
var example = [10, 20, 30]
var firstElement = example[0] # 10
var secondElement = example[1] # 20
var thirdElement = example[2] # 30
数组的长度
要获取数组的长度,请使用以下size方法:
var example = [ 1,2,3 ]
var length = example.size()
print(length) # 3
子阵列
您可以在数组中包含数组。这些被称为子阵列。
var subArray = [ [1,2], [9,10] ] # an empty array
# Get a value from the first subarray
var subarrayValueOne = subArray[0][0] # 1
var subarrayValueTwo = subArray[1][1] # 10
推送和弹出方法
要将值推送到数组的前面或后面,请使用 push 方法:
var example = [ 1,2,3 ] # an empty array
# Get a value from the first subarray
example.push_front(0) # example = [0,1,2,3]
example.push_back(4) # example = [0,1,2,3,4]
要从数组中弹出一个值,可以使用 pop 方法:
var example = [ 1,2,3 ] # an empty array
# Get a value from the first subarray
example.pop_front() # example = [2,3]
example.pop_back() # example = [3]
清空数组
有几种方法可以清除数组:
- 您可以分配一个空数组 ```swift var example = [ 1,2,3 ]
example = []
2. resize您可以使用该方法调整数组的大小
```swift
var example = [ 1,2,3 ]
example.resize(0)
- clear您可以使用该方法清除数组 ```swift var example = [ 1,2,3 ]
example.clear()
<a name="Pr3Cs"></a>
### 复制一个数组
在 Godot 中,如果您尝试将数组传递给另一个变量,则会出现问题。<br />问题是两个变量可以访问相同的数组值。
```swift
var example = [ 1,2,3 ]
var anotherArray = example # anotherArray = [1,2,3]
anotherArray.push_front(4)
print(example) # [1,2,3,4]
浅拷贝
浅拷贝复制除子数组外的数组。
这意味着所有嵌套数组和字典都将与原始数组共享。
浅拷贝使用duplicate在括号内传递 false 值的方法。
var example = [ 1,2,3, [1,2] ]
var anotherArray = example.duplicate(false) # anotherArray = [1,2,3,[1,2]]
anotherArray.push_front(4)
print(example) # [1,2,3,[1,2]]
anotherArray[3][0] = 100
print(example) # [1,2,3,[100,2]]
print(anotherArray) # [1,2,3,[100,2],4]
深拷贝
深拷贝复制数组,包括子数组。
这意味着所有嵌套数组和字典都不会与原始数组共享。
要进行深层复制,请使用带有括号内传递duplicate的值的方法。true
var example = [ 1,2,3, [1,2] ]
var anotherArray = example.duplicate(true) # anotherArray = [1,2,3,[1,2]]
anotherArray.push_front(4)
print(example) # [1,2,3,[1,2]]
anotherArray[3][0] = 100
print(example) # [1,2,3,[1,2]]
print(anotherArray) # [1,2,3,[100,2],4]