
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属性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)