Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Swift中将其名称作为字符串访问struct属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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

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

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

class MyClass {
   var myDataArray: [Data]
}

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

func calculateAverage(oldOrNew: String) -> Double {
   var @R_545_10586@l = 0.0
   count = 0

   for data in myDataArray {
      @R_545_10586@l += data.oldOrNew
      count++
   }

   return @R_545_10586@l / 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") // 0
data.valueByPropertyName("new") // 1

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。