struct MyStruct {
var a = 0
func foo() {
print("Ok")
}
mutating func increase() {
a += 1
}
}
func runner(_ function: () -> Void) {
function()
}
var myStruct = MyStruct()
runner(myStruct.foo) // Ok
runner(myStruct.increase) // 🚨 Escaping autoclosure captures 'inout' parameter 'self'
如何让它发挥作用? 🥹
对了,这里
autoclosure
在哪里?为什么它会逃跑?runner { myStruct.increase() }
并且它会起作用,但对我来说重要的是只能将函数名称传递给runner
。