Perché i seguenti elementi non funzionano in Swift?Swift === con nil
if someObject === nil {
}
quello che dovete fare il test utilizzando l'operatore == come
if someObject == nil {
}
Stavo pensando che === era più simile assicurandosi che i casi in cui la stessa (in pratica confrontando i puntatori) e == era più simile a un controllo isEqual. Quindi penserei che === sarebbe più appropriato per i test contro zero, ma ovviamente non sono corretto.
La documentazione:
=== o “Identico” significa che due costanti o variabili di tipo classe riferiscono esattamente la stessa istanza di classe.
== o “uguale a” significa che due istanze sono considerati “uguale” o “equivalente” di valore, per alcune significato appropriato di “uguali”, come definito dal progettista del tipo “.
I seguenti lavori per me 'classe Persona {} let p = Person() let q: Person? = nil println (p === nil) println (q === nil) ' –
L'oggetto avrebbe un valore di nil, non si riferisce esattamente allo stesso oggetto di nil, che è ciò che === significa. – milesper