通过参数名称访问数组中的结构体

问题描述 投票:0回答:1

假设我们有一个结构数组

struct userConfig: {

 let sampleConfig: [SampleConfig]?

}

在 SampleConfig 数组中我们有:

struct SampleConfig: {

valueOne: String?

valueTwo: String?

} 

我想获取“valueOne”的值

所以我会这样做:

userConfig?.sampleConfig?.[0]

但我想通过其参数名称“valueOne”而不是数组顺序来获取 if 。由于该值可以改变。

类似这样的:

userConfig?.sampleConfig?.valueOne

有办法吗?

ios arrays swift struct
1个回答
0
投票

你应该做的第一件事就是不要创建数组

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

© www.soinside.com 2019 - 2024. All rights reserved.