Swift – 如何在迭代结构对象时进行突变

Swift – 如何在迭代结构对象时进行突变,第1张

概述我仍然不能确定结构拷贝或引用的规则. 我想在一个数组中迭代一个struct对象: 例如在这种情况下,我想改变背景颜色 但编译器对我大喊大叫 struct Options { var backgroundColor = UIColor.blackColor()}var arrayOfMyStruct = [MyStruct]...for obj in arrayOfMyStruct 我仍然不能确定结构拷贝或引用的规则.

我想在一个数组中迭代一个struct对象:
例如在这种情况下,我想改变背景颜色
但编译器对我大喊大叫

struct Options {  var backgroundcolor = UIcolor.blackcolor()}var arrayOfMyStruct = [MyStruct]...for obj in arrayOfMyStruct {  obj.backgroundcolor = UIcolor.redcolor() // ! get an error}
struct是值类型,因此在for循环中你正在处理一个副本.

作为一个测试,你可以试试这个:

Swift 3:

struct Options {   var backgroundcolor = UIcolor.black}var arrayOfMyStruct = [Options]()for (index,_) in arrayOfMyStruct.enumerated() {   arrayOfMyStruct[index].backgroundcolor = UIcolor.red}

Swift 2:

struct Options {    var backgroundcolor = UIcolor.blackcolor()}var arrayOfMyStruct = [Options]()for (index,_) in enumerate(arrayOfMyStruct) {    arrayOfMyStruct[index].backgroundcolor = UIcolor.redcolor() }

在这里,您只需枚举索引,并直接访问存储在数组中的值.

希望这可以帮助.

总结

以上是内存溢出为你收集整理的Swift – 如何在迭代结构对象时进行突变全部内容,希望文章能够帮你解决Swift – 如何在迭代结构对象时进行突变所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1027448.html

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

发表评论

登录后才能评论

评论列表(0条)

保存