什么是。“自我”;在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)
时隐式地知道要这么做??