在Swift中将其名称作为字符串访问struct属性

在Swift中将其名称作为字符串访问struct属性,第1张

概述假设我在 Swift中有以下结构: struct Data { let old: Double let new: Double} 现在我有一个包含数据结构数组的类: class MyClass { var myDataArray: [Data]} 现在让我们说我想计算旧值或新值的平均值: func calculateAverage(oldOrNew: String) -> D 假设我在 Swift中有以下结构:

struct Data {   let old: Double   let new: Double}

现在我有一个包含数据结构数组的类:

class MyClass {   var myDataArray: [Data]}

现在让我们说我想计算旧值或新值的平均值:

func calculateAverage(oldOrNew: String) -> Double {   var total = 0.0   count = 0   for data in myDataArray {      total += data.oldOrNew      count++   }   return total / Double(count)}

然后:

let oldAverage = calculateAverage("old")let newAverage = calculateAverage("new")

但这显然不起作用,因为oldOrNew不是我的struct的成员.

如何从“旧”或“新”访问旧的或新的?

解决方法 那个“无反射”的解决方案呢?

struct Data {    let old: Double    let new: Double    func valueByPropertyname(name:String) -> Double {        switch name {        case "old": return old        case "new": return new        default: fatalError("Wrong property name")        }    }}

现在你可以做到这一点

let data = Data(old: 0,new: 1)data.valueByPropertyname("old") // 0data.valueByPropertyname("new") // 1
总结

以上是内存溢出为你收集整理的在Swift中将其名称作为字符串访问struct属性全部内容,希望文章能够帮你解决在Swift中将其名称作为字符串访问struct属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1019894.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存