我有以下结构:
struct MyStruct {
var myInt: Int
var myString: String
}
应该在这样的函数中编辑此结构:
func editMyStruct(action: (inout MyStruct) -> ()) {
var mutableMyStruct = MyStruct(myInt: 10, myString: "Foo")
action(&mutableMyStruct)
//do something with the modified 'mutableMyStruct' ...
}
但是,我确实很难致电editMyStruct(action: (inout MyStruct) -> ())
。
editMyStruct(action: { myStruct in
myStruct.myInt = 20
myStruct.myString = "Bar"
})
Xcode抛出错误:
表达的类型是模棱两可的,没有更多上下文
你们中有人知道如何解决这个问题?
期待您的回应!
找到答案!
editMyStruct(action: (inout MyStruct) -> ())
的语法必须为:
editMyStruct(action: { (myStruct: inout MyStruct) in
myStruct.myInt = 20
myStruct.myString = "Bar"
})
编辑
argh!对我感到羞耻。我注意到提到的错误是由于具有相同签名的另一个函数而引发的...上面的代码很好;(