4

我不完全理解\.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
            }
        }
    }
}

我正在关注这个:https ://www.hackingwithswift.com/books/ios-swiftui/deleting-items-using-ondelete 。

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

4

1 回答 1

3

. 关键路径。ForEach 需要每个对象都是唯一的。用 id:.self 给他们唯一的 id。如果您的对象是可识别的,则您不需要 .self。 我在medim中写过这个,如果你愿意,你可以看看

于 2021-03-20T16:56:52.787 回答