Mentre giocavo in un campo da giuoco Swift ho notato che Self
, con la "S" maiuscola, è disponibile insieme al minuscolo self
. C'è qualche differenza tra loro? In tal caso, quali sono gli usi per questi due, in particolare per Self
?Distinzione in Swift tra "Sé" maiuscolo e "Sé" minuscolo
risposta
Self
si riferisce al tipo di "cosa" corrente all'interno di un protocollo (qualsiasi cosa sia conforme al protocollo). Per un esempio del suo utilizzo, vedere Protocol func returning Self.
L'unico documento ufficiale che ho trovato per Self
è in Protocol Associated Type Declaration in Swift Programming Language. Sorprendentemente non è documentato nelle sezioni sui protocolli o sui tipi annidati.
Sto vivendo una giornata frenetica. Ma non preoccuparti! Mi sono preso del tempo dall'alienare i miei amici per dire: per rispondere completamente alla domanda tecnicamente questa risposta dovrebbe dire esplicitamente che il "sé" è in gran parte ciò che le persone dell'obiettivo C pensano che sia. Con la discussione di strutture, enumerazioni, ecc., Probabilmente si tratta di una deviazione non necessaria. – Tommy
Qualcuno ha ancora trovato documenti sul Sé? – uchuugaka
Vedere "Protocollo Associated Type Dichiarazione" nella lingua di riferimento: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html –
nel protocollo & dichiarazione di estensione utilizzare auto altro sé
extension protocolName where Self: UIView
{
func someFunction()
{
self.layer.shadowColor = UIColor.red.cgColor
}
}
Ci sono alcune sfumature per quanto riguarda i valori di '' self' e Self' in estensioni del protocollo - vado in questo in un po 'di dettagli [in questo Q & A] (http://stackoverflow.com/q/42037852/2976878). – Hamish