Swift: 不能access/set一个空数组的第一项下标
Swift: Can not access/set an empty array's first item by subscript
为什么不能access/set一个空数组的第一项下标?
例如:
var array: [Int] = []
array[0] = 1 //fatal error: Index out of range
通过 var array: [Int] = []
创建空数组,因此它没有索引为 0 的值。
要解决这个问题,您可以 append
像这样的数组:
array.append(1)
print(array[0]) // 1
或将值数组设置为空数组:
array = [1] // another way to do that: "array += [1]"
print(array[0]) // 1
或预定义数组填充任何值(例如0):
let n = 10
array = Array(repeating: 0, count: 10)
array[0] = 0
空数组初始化没问题。如果你想 acces/set 第一项,你只需要做:
array.append(1)
它首先会存储在索引 0 处,您可以轻松访问它:array[0]
- 但该访问只是读取而不是添加。要增加价值,您必须 'append'。但是,如果数组不为空,则可以通过以下方式更改该值:
array[0] = 7
然而,如果您仍想在指定索引处增加价值,您可以使用:
array.insert(1, at: 0) //value at index
索引超出范围,因为数组中没有元素,所以没有索引0。要向数组添加元素,你必须做
array.append(1)
在上面一行之后,可以设置第一个元素:
array[0] = 2
因为数组中现在有 个元素。
只有在确定索引存在于数组中时才使用下标
试试,
array.append(1)
或
array.insert(1, at: 0)
或
array = [1]
为什么不能access/set一个空数组的第一项下标?
例如:
var array: [Int] = []
array[0] = 1 //fatal error: Index out of range
通过 var array: [Int] = []
创建空数组,因此它没有索引为 0 的值。
要解决这个问题,您可以 append
像这样的数组:
array.append(1)
print(array[0]) // 1
或将值数组设置为空数组:
array = [1] // another way to do that: "array += [1]"
print(array[0]) // 1
或预定义数组填充任何值(例如0):
let n = 10
array = Array(repeating: 0, count: 10)
array[0] = 0
空数组初始化没问题。如果你想 acces/set 第一项,你只需要做:
array.append(1)
它首先会存储在索引 0 处,您可以轻松访问它:array[0]
- 但该访问只是读取而不是添加。要增加价值,您必须 'append'。但是,如果数组不为空,则可以通过以下方式更改该值:
array[0] = 7
然而,如果您仍想在指定索引处增加价值,您可以使用:
array.insert(1, at: 0) //value at index
索引超出范围,因为数组中没有元素,所以没有索引0。要向数组添加元素,你必须做
array.append(1)
在上面一行之后,可以设置第一个元素:
array[0] = 2
因为数组中现在有 个元素。
只有在确定索引存在于数组中时才使用下标
试试,
array.append(1)
或
array.insert(1, at: 0)
或
array = [1]