Avatar ·

Swift和SwiftUI中关键字 `some` 的含义是什么?

你好!我开始学习 Swift 和 SwiftUI,经常在 View 声明中遇到一个奇怪的词 `some`。例如,这是标准代码: ```swift struct ContentView: View { var body: some View { Text("Hello, world!") } } ``` 我明白 `var body: some View` 是一个返回某种 View 的属性。但为什么这里要用 `some`?为什么不能直接写 `var body: View`?我试过去掉 `some`,Xcode 报错:"Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements"。这是什么意思? 我读过 Apple 的文档,但写得很复杂:"opaque return type"、"existential type"……你能用简单的话解释一下,为什么需要这个关键字,什么时候用它,以及它是如何工作的?我特别想知道为什么在 SwiftUI 中不能没有它,但在普通协议中有时可以不用。请举一些例子,让新手能明白。 提前谢谢!