gpt4 book ai didi

Swift:带有 inout 闭包的函数

转载 作者:行者123 更新时间:2023-11-30 11:45:47 24 4
gpt4 key购买 nike

我有以下结构:

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 抛出错误:

Type of expression is ambiguous without more context

你们有人知道如何解决这个问题吗?

期待您的回复!

最佳答案

找到答案了!

editMyStruct(action: (inout MyStruct) -> ()) 的语法必须是:

editMyStruct(action: { (myStruct: inout MyStruct) in
myStruct.myInt = 20
myStruct.myString = "Bar"
})

编辑

啊啊!我真丢脸。我注意到由于具有相同签名的另一个函数而引发了上述错误...上面的代码很好;)

关于Swift:带有 inout 闭包的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48843298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com