Если вы попытаетесь создать SwiftUI View
со свойством @State или @Binding
ex:
struct TestView: View {
@Binding var foo: String
init(foo: Binding<String>) {
self.foo = foo
}
var body: some View {
Text(foo)
}
}
, вы получите ошибку: Cannot assign value of type 'Binding<String>' to type 'String'
Если вы измените инициализатор на:
init(foo: Binding<String>) {
_foo = foo
}
Он «просто работает».
Что происходит с синтаксисом «_»? Что это на самом деле делает? Похоже, вы устанавливаете ивар в Obj C, но я очень сомневаюсь, что это то, что происходит.