循环通过Swift结构来获取键和值

8 struct swift

我想循环遍历每个键,mystruct并打印其和每个属性的.

struct mystruct {
  var a = "11215"
  var b = "21212"
  var c = "39932"
}

func loopthrough {
    for (key, value) in mystruct {
        print("key: \(key), value: \(value)") // Type mystruct.Type does not conform to protocol 'Sequence'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是使用上面的几行我总是得到这个错误信息:

类型mystruct.Type不符合协议'序列'

如何避免收到此消息?

Luc*_*tti 25

首先让我们使用CamelCase作为结构名称

struct MyStruct {
    var a = "11215"
    var b = "21212"
    var c = "39932"
}
Run Code Online (Sandbox Code Playgroud)

接下来,我们需要创建MyStruct类型的值

let elm = MyStruct()
Run Code Online (Sandbox Code Playgroud)

现在我们可以Mirror根据elm价值建立一个价值.

let mirror = Mirror(reflecting: elm)
Run Code Online (Sandbox Code Playgroud)

Mirror值确实允许我们访问所有属性elm,这是如何

for child in mirror.children  {
    print("key: \(child.label), value: \(child.value)")
}
Run Code Online (Sandbox Code Playgroud)

结果:

key:可选("a"),值:11215

key:可选("b"),值:21212

key:可选("c"),值:39932

  • 请解释一下此代码的作用。 (2认同)