在SwiftUI的Apple教程"编写复杂接口”中,教程使用了一个看起来不像字符串插值或转义字符的反斜杠。
ForEach(categories.keys.sorted().identified(by: \.self))
这个反斜杠的用途是什么?
下面是包含它的整个Struct。
struct CategoryHome: View {
var categories: [String: [Landmark]] {
.init(
grouping: landmarkData,
by: { $0.category.rawValue }
)
}
var body: some View {
NavigationView {
List {
ForEach(categories.keys.sorted().identified(by: \.self)) { key in
Text(key)
}
}
.navigationBarTitle(Text("Featured"))
}
}
}
2条答案
按热度按时间ndasle7k1#
在
SwiftUI
中,反斜杠操作符用于引用要在给定块内使用的keypath。来自苹果:
添加引用标识密钥路径的功能,标识密钥路径引用应用标识密钥路径的整个输入值。
例如,请看下面的代码:
在这里迭代数组时,使用self(这里是- string)作为键
现在再举一个例子:在这里我们使用对象数组(而不是字符串),现在在这种情况下,用作块内用于迭代的键的键是id。
fcy6dtqo2#
\.self
这是苹果为以下应用添加的身份密钥路径:添加引用标识密钥路径的功能,标识密钥路径引用应用标识密钥路径的整个输入值。
更多信息请参见proposal。