假设我们有一个结构数组
struct userConfig: {
let sampleConfig: [SampleConfig]?
}
在 SampleConfig 数组中我们有:
struct SampleConfig: {
valueOne: String?
valueTwo: String?
}
我想获取“valueOne”的值
所以我会这样做:
userConfig?.sampleConfig?.[0]
但我想通过其参数名称“valueOne”而不是数组顺序来获取 if 。由于该值可以改变。
类似这样的:
userConfig?.sampleConfig?.valueOne
有办法吗?
你应该做的第一件事就是不要创建数组
Optional
。如果没有 SampleConfig
,请用空数组表示。所以改变 UserConfig
这样:
struct UserConfig {
let sampleConfig: [SampleConfig]
}
现在,如果您想获取所有
valueOne
值的列表,最简单的方法是使用 map()
let allValueOnes = userConfig.sampleConfig.map { $0.valueOne }
这将为您提供所有
valueOne
的列表,并将 nil
放入那些 SampleConfig
中,其中 valueOne
是 nil
。或者您可以使用 compactMap
来过滤掉 nil
valueOne
。