Все, что мне нужно сделать, это начать новый проект в Swift и добавить к main.swift
INOUT параметр закрытия врежется Свифт компилятора
struct Foo {
let bar: (inout baz: String) ->()
}
Когда я пытаюсь построить я получаю ошибку:
Command failed due to signal: Segmentation fault: 11
Я делаю что-то неправильно?
Я подумал, что, возможно, inout
параметры затворов не поддерживаются, но если я определяю замыкание так:
let baz: (inout baz: String) ->() = { baz in
baz += "x"
return
}
или даже
var baz: (inout baz: String) ->()?
компилируется и работает нормально
Я открыл билет в репортере с ошибкой Apple. Я думаю, что это ошибка. Компилятор Swift теперь немного глючит. – Shuo
В вашем первом примере тип не может быть найден компилятором. В вашем втором примере компилятор может найти причину того, что вы определили косвенно. В последнем примере это просто необязательно, так что существование всегда будет истинным. – Alex
Вы правы; это не удается. –