La rapida documentazione spiega lo scopo di! operatore unboxing sui tipi opzionali,rapido: qual è il modificatore del tipo forzato (!) Per
var optionalString : String? = "optional"
var regularString: String = optionalString!
ma hanno usato su se stessi tipo definizioni (String!), senza una spiegazione esplicita che posso trovare.
Esempio:
func takesBang(value:String!) -> String {
if !value {
return "nil value, without the safe syntax"
}
return "This works"
}
var unsafe:String!
takesBang(unsafe) // yields "nil value, without the safe syntax"
The String! type non impone un unboxing del tipo opzionale, ma sembra solo rimuovere la necessità della sintassi opzionale (?.). Apple usa questo nei propri esempi, ma sembra negare solo i meccanismi di sicurezza (puntatore) opzionali.
Qualcuno può spiegare lo scopo/la motivazione? Questo in genere non è sicuro in quanto il chiamante non dovrà controllare o almeno pensare al loro valore.