swift - 循环遍历 Swift 结构以获取键和值

标签 swift struct

我想循环遍历 mystruct 的每个键并打印其 key 和它的 对于每个属性。

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'
    }
}

但是使用上面的几行我总是收到此错误消息:

Type mystruct.Type does not conform to protocol 'Sequence'



如何避免收到此消息?

最佳答案

首先让我们使用 CamelCase 对于结构名称

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

接下来我们需要创建一个 MyStruct 类型的值
let elm = MyStruct()

现在我们可以构建一个 Mirror值基于 elm值(value)。
let mirror = Mirror(reflecting: elm)
Mirror value 确实允许我们访问 elm 的所有属性, 就是这样
for child in mirror.children  {
    print("key: \(child.label), value: \(child.value)")
}

结果:

key: Optional("a"), value: 11215

key: Optional("b"), value: 21212

key: Optional("c"), value: 39932

关于swift - 循环遍历 Swift 结构以获取键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48476011/

相关文章:

从另一个文件调用节点

c - 我的 C 应用程序中出现段错误

ios - 使用 swift 将本地 html 加载到 UIWebView

ios - Swift 中的自定义键盘应用内

ios - 在 Swift 中逐行读取文本文件?

c - 如何将包含已分配内存的结构保存到文件?

c++ - 如何将结构传递给新线程 (C++)

swift - CS : equality of a promise in functional programming

ios - NetworkReachabilityManager 或 Reachability 无法识别在没有互联网的情况下连接 wifi

c - 这是接口(interface)还是函数原型(prototype)?