Photo by Goran Ivos / Unsplash

'==' ile '===' operatörü arasındaki fark nedir ?

Swift Jul 30, 2022

  • == 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.

Tags

Furkan Ozoglu

iOS Developer & Geomatics Engineer