设置数组索引 (SwiftUI)

Set Index of Array (SwiftUI)

我正在通过 hackingwithswift 完成 SwiftUI 的 100 天,目前是第 35 天,这需要我构建一个时间 table 应用程序。

不幸的是,我在很早的阶段就卡住了,觉得问起来很愚蠢。

如何让我的数组索引从 1 而不是 0 开始?

下面是我的代码和截图 canvas:

struct ContentView: View {
    @State private var number = 0
    @State private var question = Int.random(in: 0..<13)

    let numberRange = Array<Int>(1 ... 12)

    var body: some View {
        VStack {
            Picker("What times tables do you want to test your knowledge on?", selection: $number) {
                ForEach(0 ..< numberRange.count) {
                    Text("\(self.numberRange[[=10=]])")
                }
            }
            .pickerStyle(SegmentedPickerStyle())

            Text("What is \(number) x \(question) = ")
        }
    }
}

来自 Apple 文档:

The first element of a nonempty array is always at index zero.

基本上您需要将 +1 添加到您的 number 变量。

var correctNumber: Int {
    number + 1
}

并在显示值或执行计算时使用此 correctNumber

Text("What is \(correctNumber) x \(question)?")

由于 correctNumber 是一个计算 属性 它将始终与 number 变量保持同步。