Swift – 如何在迭代结构对象时进行突变
发布时间:2020-12-14 05:20:39 所属栏目:百科 来源:网络整理
导读:我仍然不能确定结构拷贝或引用的规则. 我想在一个数组中迭代一个struct对象: 例如在这种情况下,我想改变背景颜色 但编译器对我大喊大叫 struct Options { var backgroundColor = UIColor.blackColor()}var arrayOfMyStruct = [MyStruct]...for obj in array
我仍然不能确定结构拷贝或引用的规则.
我想在一个数组中迭代一个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() } 在这里,您只需枚举索引,并直接访问存储在数组中的值. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |