什么是。“自我”;在swift/swiftUI中实际执行什么操作?

什么是。“自我”;在swift/swiftUI中实际执行什么操作?,swiftui,swiftui-foreach,Swiftui,Swiftui Foreach,我不完全理解\.self在以下代码中到底做了什么: struct ContentView: View { @State private var numbers = [Int]() @State private var currentNumber = 1 var body: some View { VStack { List { ForEach(numbers, id: \.self) {

我不完全理解
\.self
在以下代码中到底做了什么:

struct ContentView: View {
    @State private var numbers = [Int]()
    @State private var currentNumber = 1

    var body: some View {
        VStack {
            List {
                ForEach(numbers, id: \.self) {
                    Text("\($0)")
                }
            }

            Button("Add Number") {
                self.numbers.append(self.currentNumber)
                self.currentNumber += 1
            }
        }
    }
}
我正在关注这个:


我现在对这门语言有一个非常基本的理解,所以我可能不理解高级解释,所以我更喜欢非常简单的解释或带有详细描述的类比。我认为它是将每个
列表
项的
id
设置为数字数组中的每个项?如果错误,请纠正我-但是是否每个
id
都被设置为数字数组的每个条目中的
Int
?如果是这样,那么在键入
\
时,
\.self
实际做了什么,以及
.self
\
组合时实际做了什么?

<。关键路径。ForEach需要每个对象都是唯一的。为他们提供id为的唯一id:.self。如果你的物品是可识别的,你不需要自我识别。

来自同一个站点:阅读有关关键路径的信息
Int(1)
和应用的关键路径
\。self
给出
Int(1)
,即
\。self
字面意思是self。谢谢@Asperi和@pawello2222,我去阅读了它;据我所知,\开始引用数组或结构之类的对象的键路径?只要
\.self
符合hashable(显然数组是这样做的),那么swift将自动创建
Int(1)
的散列以用作id?而swift只是在使用
ForEach(ux,id:hashable)
时隐式地知道要这么做??