我有以下结构:
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抛出错误:
如果没有更多的上下文,表达的类型是不明确的
你们中有谁知道,如何解决这个问题?
期待您的回复!
答案 0 :(得分:0)
找到了答案!
editMyStruct(action: (inout MyStruct) -> ())
的语法必须是:
editMyStruct(action: { (myStruct: inout MyStruct) in
myStruct.myInt = 20
myStruct.myString = "Bar"
})
的修改
哎呀!对我感到羞耻。我注意到由于具有相同签名的另一个函数而引发了所提到的错误...上面的代码很好;)