【问题标题】:For-in Loop Through Array of Structs; Index Out of Range?For-in 循环遍历结构数组;索引超出范围?
【发布时间】:2018-06-20 01:55:34
【问题描述】:

以下结果在 Swift 4 Playgrounds 中导致“致命错误:索引超出范围”。我对 Swift 很陌生;答案不应该是“10”吗?谢谢!

struct Example {
var partOne: Int
var partTwo: Int
var partThree: Int
 }

var one = Example(partOne: 10, partTwo: 11, partThree: 12)
var two = Example(partOne: 10, partTwo: 11, partThree: 12)

var arrayOfExamples = [Example]()


print(arrayOfExamples[0].partOne)

【问题讨论】:

  • 为什么会是 10?你的数组是空的。
  • var arrayOfExamples = [Example]() 初始化数组。这就像建造一所新房子。但是屋子里有多少人呢? 0。没有人!您需要将人员添加到房屋中。您确实可以使用append 添加。同样在您的情况下...在 line 之后执行arrayOfExamples.append(one)。对two 做同样的事情。它不再是空的了

标签: arrays swift struct


【解决方案1】:

试试下面的代码

struct Example {
    var partOne: Int
    var partTwo: Int
    var partThree: Int
}

var one = Example(partOne: 10, partTwo: 11, partThree: 12)
var two = Example(partOne: 10, partTwo: 11, partThree: 12)

var arrayOfExamples = [one, two]

print(arrayOfExamples[0].partOne)  // 10
print(arrayOfExamples[1].partOne)  // 10

输出:10、10

使用 For-In 循环

for i in arrayOfExamples {
  print(i.partOne)
}

输出:10、10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2013-11-25
    • 2017-08-09
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多