Recentemente ho scaricato il avanzata NSOperations campione app da Apple e ha trovato questo codice ...~ = operatore in Swift
// Operators to use in the switch statement.
private func ~=(lhs: (String, Int, String?), rhs: (String, Int, String?)) -> Bool {
return lhs.0 ~= rhs.0 && lhs.1 ~= rhs.1 && lhs.2 == rhs.2
}
private func ~=(lhs: (String, OperationErrorCode, String), rhs: (String, Int, String?)) -> Bool {
return lhs.0 ~= rhs.0 && lhs.1.rawValue ~= rhs.1 && lhs.2 == rhs.2
}
sembra di utilizzare l'operatore ~=
contro Strings
e Ints
ma non ho mai visto prima.
Che cos'è?
L'istruzione switch è l'unico posto in cui viene utilizzato questo operatore? Che ne dite di 'per caso lasciare l'oggetto negli elementi {...}' ecc.? –
@RoboRobok hai perfettamente ragione, funzionerà con qualsiasi istruzione 'case'. Ho aggiornato il mio post. –
ATTENZIONE: Quello che devi passare è il 2 ° parametro del tuo overload '~ ='. Significato 'func ~ = (valore: Person, pattern: String) -> Bool { return valore.name == modello }' genererebbe questo errore: ** modello di espressione di tipo 'String' non può corrispondere ai valori di tipo 'Person '** – Honey