Sobes.tech
Junior

Dart'ta identical operatörü kullanılarak karşılaştırma nasıl yapılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Dart'ta identical(a, b) fonksiyonu, argümanları a ve b aynı nesne ise true döner. Aksi takdirde false döner.

Bu, sınıflar tarafından yeniden tanımlanabilen == operatöründen farklıdır; == mantıksal eşitliği belirlemek için kullanılırken, identical nesnelerin bellekteki kimliğini kontrol eder.

Örnekler:

// Nesne A
var list1 = [1, 2, 3];
// Nesne B (başka bir nesne)
var list2 = [1, 2, 3];

print(identical(list1, list2)); // false (farklı nesneler)
print(list1 == list2);         // true (List == yeniden tanımlandıysa mantıksal olarak eşit)

// Nesne C, list1 ile aynı nesneye referans
var list3 = list1;

print(identical(list1, list3)); // true (aynı nesneye referans)

İmmutabl (değiştirilemez) primitive tipler (sayısal, string, boolean, null) için, identical genellikle == ile aynıdır çünkü Dart, değiştirilemez değerlerin örneklerini önbelleğe alabilir veya yeniden kullanabilir.

var a = 10;
var b = 10;
print(identical(a, b)); // true (muhtemelen Dart, 10 değeri için aynı örneği kullanır)

var s1 = "hello";
var s2 = "hello";
print(identical(s1, s2)); // true (Dart string literal'leri önbelleğe alır)

identical'in temel kullanımı, referansın tam olarak aynı nesne örneğine işaret edip etmediğini kontrol etmektir; bu, optimizasyonlar, önbellekleme veya değiştirilemez nesnelerle çalışma sırasında faydalıdır.