for...in 循环中的三个变量使用 Swift

Three variables in for...in loop using Swift

我能够使用 zip() 函数在 Swift 中为两个变量实现 for ... in 循环:

for (i, j) in zip(1...number, 2...number + 1)

现在,我正在尝试使用 zip() 在 Swift 中为三个变量实现 for ... in 循环,但它给出了错误:

for (i, j, k) in zip(1...number, 2...number + 1, 3...number + 2)

我在使用 zip 时遇到的错误:

main.swift:8:51: error: extra argument in call for (i, j, k) in zip(1...number, 2...number + 1, 3...number + 2)

我也尝试省略 zip() 函数,但我仍然遇到错误:

for (i, j, k) in (1...number, 2...number + 1, 3...number + 2)

我在没有使用 zip() 的情况下遇到的错误:

main.swift:8:18: error: type '(ClosedRange, ClosedRange, ClosedRange)' does not conform to protocol 'Sequence' for (i, j, k) in (1...number, 2...number + 1, 3...number + 2)

我该如何解决这个问题?

zip(_:_:) 不适用于超过 2 个参数。

func zip(_ sequence1: Sequence1, _ sequence2: Sequence2) -> Zip2Sequence where Sequence1 : Sequence, Sequence2 : Sequence

您需要组合多个 zip(_:_:) 才能正常工作。

示例:

for ((i, j), k) in zip(zip(1...number, 2...number + 1), 3...number + 2) {
    print(i, j, k)
}