【问题标题】:Swift: Two-dimensional array error index out of rangeSwift:二维数组错误索引超出范围
【发布时间】:2021-04-14 10:30:42
【问题描述】:

我正在尝试将新项目添加到二维数组中,但出现此错误 Index out of range

这是我的实现:

var array = [[Int]]()
array[0][0] = 1  // <-- Index out of range error

你们中的任何人都知道我为什么会收到此错误或者是否有解决方法?

非常感谢您的帮助

【问题讨论】:

  • 初始化数组时,它是一个空的二维数组。 () 只是初始化它,但还没有填充它。你应该append而不是通过索引访问它,因为索引还不存在。
  • @aheze 如何在二维数组中追加一个项目?

标签: ios arrays multidimensional-array swift5 xcode12


【解决方案1】:

你已经声明了一个 Ints 数组。

要将某些内容附加到该数组,您必须创建一个新的 Int 数组以附加到它。

添加一个或多个 Int 数组后,您可以修改这些值,或将其他 Int 值附加到第二级数组:

    var array = [[Int]]()

    print(array)
    // output is: []

    // append an array of One Int
    array.append([1])

    print(array)
    // output is: [[1]]
    
    // append an array of Three Ints
    array.append([1, 2, 3])

    // append an array of Six Ints
    array.append([4, 5, 6, 7, 8, 9])

    print(array)
    // output is: [[1], [1, 2, 3], [4, 5, 6, 7, 8, 9]]

    // modify the value of the 2nd Int in the 2nd array
    array[1][1] = 100
    
    print(array)
    // output is: [[1], [1, 100, 3], [4, 5, 6, 7, 8, 9]]
    
    // append a new Int to the 2nd array
    array[1].append(777)
    
    print(array)
    // output is: [[1], [1, 100, 3, 777], [4, 5, 6, 7, 8, 9]]

【讨论】:

  • 我的问题是如何在特定索引array[0][0] = 1 处插入项目?
  • @user2924482 - 这是第一个示例:array.append([1]) ... 完成此操作后,您可以:let x = array[0][0]array[0][0] = 21 设置(更改)为2 ... 但您不能设置一个尚不存在的数组元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多