'==' ile '===' operatörü arasındaki fark nedir ?
==
eşitlik (equality) operatörüdür.===
kimlik (identity) operatörüdür.
Biraz daha açmak gerekirse;
"Hello" == "Hello"
10.0 == 5.0 + 5.0
matematikten de bildigimiz eşitlik kavramına denk gelmektedir.
Kimlik operatörü ===
ise iki sınıfın aynı olup olmadığını, yani aynı bellek adresine işaret edip etmediğini kontrol etmek için kullanılabilir. Örneğin,
class Fruit {
var name = "Apple"
}
let fruit1 = Fruit()
let fruit2 = fruit1 // 2.Meyve, 1.Meyve ile aynı
fruit1 === fruit2 // true
Meyveler, kimlik operatörü ile karşılaştırıldığında aynı meyveden referans aldığından dolayı true
olarak dönecektir.
Yazıya konu içerisinde farkli bonus bir bilgi de ilave etmek istiyorum.
nil
ile none
aynı mıdır ? Cevabı evet olacaktır. 🙂
nil == .none // returns true
eşitlik operatörü ile karşılaştırdığımızda true olarak dönecektir. Ancak yayın kullanım nil
dir.