Aşağıdakiler neden Swift'de çalışmıyor?Swift === ile nil
if someObject === nil {
}
Ben o === fazla örneğini emin gibiydi düşünüyordum gibi
if someObject == nil {
}
== operatörünü kullanarak testini yapmak zorunda nerede (temelde işaretçileri karşılaştıran tam aynı) ve == bir isEqual kontrolüne benziyordu. Böylece === nil'e karşı test etmek için daha uygun olacağını düşünürdüm, ama açıkçası yanılıyordum.
belgelerine durumları:
=== veya “aynı” iki sabit veya sınıf türü nesneyi aynı sınıf örneği bakınız anlamına gelir.
== ya da “'ye eşit” iki örneği olarak kabul edilir olduğu anlamına gelir
Aşağıdaki işler benim için '' class Person {} let p = Kişi() let q: Person? = nil println (p === nil) println (q === nil) ' –
Nesnenin nil değeri vardır, nil ile aynı nesneye atıfta bulunmaz, yani === demektir. – milesper