Tutto quello che devi fare è avviare un nuovo progetto in Swift e aggiungere al main.swift
parametro inout in chiusura si blocca il compilatore Swift
struct Foo {
let bar: (inout baz: String) ->()
}
Quando provo a costruire ottengo un errore:
Command failed due to signal: Segmentation fault: 11
Sto facendo qualcosa di sbagliato?
ho pensato che forse inout
parametri chiusure non sono supportati, ma se io definisco una chiusura in questo modo:
let baz: (inout baz: String) ->() = { baz in
baz += "x"
return
}
o anche
var baz: (inout baz: String) ->()?
si compila e funziona OK
Ho aperto un ticket nel reporter di apple bug. Penso che sia un bug. Il compilatore Swift ora è un po 'bacato. – Shuo
Nel tuo primo esempio il tipo non può essere trovato dal compilatore. Nel tuo secondo esempio il compilatore può trovarlo a causa del fatto che hai definito in modo indiretto. Nell'ultimo esempio è solo un optional quindi l'esistenza sarà sempre vera. – Alex
sei corretto; questo fallisce. –