Ответ 1
интересно... похоже, может быть, это прикольно при попытке захватить ссылку на inner
до того, как она будет определена?
следующие исправления для нас:
func test() {
var inner: (Int) -> () = { _ in } // give it a no-op definition
inner = { val in
println("\(val)")
if val > 0 {
inner(val - 1)
}
}
inner(3)
}
конечно, без вложенности, у нас вообще нет проблем, например. следующее работает полностью, как ожидалось:
func test(val: Int) {
println("\(val)")
if val > 0 {
test(val - 1)
}
}
test(3)
Я бы сказал: сообщите об этом!