SwiftUI ForEach 开放范围与封闭范围

Mar*_*tin 8 swiftui

我想了解 ForEach 循环和范围。这是代码:

这是有效的:

ForEach(0..<5) {
   Text("Number: \($0)")
}
Run Code Online (Sandbox Code Playgroud)

这会引发异常通用参数“ID”无法推断:

ForEach(0...4) {
   Text("Number: \($0)")
}
Run Code Online (Sandbox Code Playgroud)

我可以通过指定 id 来修复它:

ForEach(0...4, id: \.self) {
   Text("Number: \($0)")
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么第一个范围0..<5是可识别的,而0..4不是。它们是相同的类型Range<Int>。我就是不明白。

非常感谢!

小智 8

原因是没有初始化程序ClosedRange<Int>。请参阅此链接了解支持的内容。