Swift:无法通过下标访问/设置空数组的第一个项目

时间:2018-02-02 07:35:57

标签: swift subscript

为什么无法按下标访问/设置空数组的第一项?

例如:

var array: [Int] = []
array[0] = 1 //fatal error: Index out of range

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

空数组初始化很好。如果你想访问/设置你必须做的第一项:

array.append(1) 

并且它将首先存储在索引0处,您可以轻松地访问它:array[0] - 但该访问只是为了读取不添加。要增加价值,您必须追加'。但是如果数组不是空的,你可以通过制作:

来改变那个值
array[0] = 7

但是,如果您仍想在指定的索引处添加值,则可以使用:

array.insert(1, at: 0) //value at index

答案 2 :(得分:0)

索引超出范围,因为数组中没有元素,因此没有索引0.要将元素添加到数组,您必须执行

array.append(1)

在上面一行之后,您可以设置第一个元素:

array[0] = 2

因为现在 是数组中的一个元素。

只有在确定数组中存在索引时才使用下标。

答案 3 :(得分:0)

尝试,

array.append(1)

array.insert(1, at: 0)

array = [1]