如何在Swift中对结构进行可变引用

时间:2018-03-11 00:33:50

标签: swift

我有一个可选的struct和一个辅助函数,可以在需要时创建结构,并将数据添加到该结构中。

所以在该函数中我知道该值存在,但每次访问它时都需要强制解包:

bin

我想做的是像

someStruct!.someField1 += value1
someStruct!.someField2 += value2
...

这显然不起作用,因为if let someStruct = someStruct { someStruct.someField1 += value1 someStruct.someField2 += value2 ... } 被视为该块内的副本。使用someStruct也没有用,因为它只是制作了一个可变副本。我想要的是var,但到目前为止,我找不到任何方法以简单的形式实现它。

我找到的唯一工作方式是再添加一个功能级别,例如:

inout

这似乎是不必要的复杂事情,我不确定它的优化程度如何。

那么,有没有办法使用类似func fillStruct(_ someStruct : inout SomeStruct) { someStruct.someField1 += value1 someStruct.someField2 += value2 ... } fillStruct(&someStruct!) 的语法对结构进行可变引用?

0 个答案:

没有答案