Wszystko co musisz zrobić, to uruchomić nowy projekt w Swift i dodać do main.swift
inout parametr w zamknięciu awarii Swift kompilator
struct Foo {
let bar: (inout baz: String) ->()
}
Kiedy próbuję zbudować otrzymuję błąd:
Command failed due to signal: Segmentation fault: 11
Czy robię coś złego?
Pomyślałem, że może inout
parametry zamknięć nie są obsługiwane, ale jeśli mogę określić zamknięcie tak:
let baz: (inout baz: String) ->() = { baz in
baz += "x"
return
}
lub nawet
var baz: (inout baz: String) ->()?
kompiluje i działa OK
Otworzyłem bilet w reporterze błędów jabłek. Myślę, że to błąd. Kompilator Swift jest teraz trochę błędny. – Shuo
W twoim pierwszym przykładzie typ nie może zostać znaleziony przez kompilator. W twoim drugim przykładzie kompilator może znaleźć przyczynę tego, że zdefiniowałeś ją pośrednio. W ostatnim przykładzie jest to opcjonalne, więc istnienie zawsze będzie prawdziwe. – Alex
masz rację; to się nie udaje. –