SwiftUI - 使用 ForEach 将数字附加到数组

SwiftUI - Append numbers to array using ForEach

我不知道为什么这行不通。我正在尝试自动生成一个数字列表,最大为“upTo”限制,但它不起作用。

我怀疑这很明显,比如“num”不是数组。我试过了,没用。

func tTables(set1 : [Int], upTo: Int) -> [Int] {
        var array = set1
        
        ForEach(1 ..< upTo + 1){num in
            array.append(num)
        }

        return array
    }

请描述一下,因为我只是初学者。

ForEach是SwiftUI视图容器,即视图,应该使用swift for-in运算符代替

func tTables(set1 : [Int], upTo: Int) -> [Int] {
        var array = set1
        
        for num in 1 ..< upTo + 1 {
            array.append(num)
        }

        return array
    }

要填充数组,您可以将序列添加为数组

func tTables(set1 : [Int], upTo: Int) -> [Int] {
    var array = set1
    array.append(contentsOf: Array(1...upTo))
    return array
}

tTables(set1: array, upTo: 5)

另一种方法是使用 inout 而不是返回数组

func tTables(set1 : inout [Int], upTo: Int) {
    set1.append(contentsOf: Array(1...upTo))
}

var array = [Int]()
tTables(set1: &array, upTo: 5)

但是如果你传递给函数的变量总是空的,你可以完全跳过函数并直接用序列初始化数组

let array = Array(1...5)