0Pricing
Dart Academy · Ders

copyWith ve Değer Eşitliği

Değişmez verileri güncelleyin ve değerlerine göre karşılaştırın.

copyWith ve Değer Eşitliği, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Dart Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Dart Academy kursu toplamda 4 dersten oluşur.

Değişmez verileri güncelleme

Değişmez bir nesneyi değiştiremezsiniz; bu nedenle güncellemek için yeni bir nesne oluşturursunuz. Bunu temiz biçimde yapan kalıp copyWith'tir.

copyWith ne yapar

copyWith yöntemi yeni bir nesne döndürür; atlamış olduğunuz alanların mevcut değerlerini korur ve yalnızca gönderdiğiniz alanları değiştirir.

final updated = user.copyWith(name: 'Ada');

copyWith yazma

Her parametre boş değer alabilir ve varsayılan olarak mevcut alanı kullanır. Bu, çağıranların yalnızca önemsedikleri alanları geçersiz kılmasını sağlar.

User copyWith({String? name}) =>
  User(name: name ?? this.name);

Boş değer tuzağı

?? this.field hilesi, copyWith ile bir alanı boş değere ayarlayamayacağınız anlamına gelir. Çoğu veri modeli bu küçük sınırlamayı kabul eder.

Varsayılan eşitlik

Varsayılan olarak iki nesne yalnızca aynı örnekse eşittir. Verileri aynı olan iki kopya yine de farklı kabul edilir.

User('Ada') == User('Ada'); // false

Değer eşitliği hedefi

Çoğu zaman nesnelerin kimlikleri değil, verileri eşleştiğinde eşit olmasını istersiniz. Buna değer eşitliği denir ve bunu etkinleştirmeniz gerekir.

== işleçini geçersiz kılma

Önemli alanları karşılaştırmak için eşitlik işleçini tanımlayın. Artık verileri aynı olan iki nesne eşit kabul edilir.

bool operator ==(o) =>
  o is User && o.name == name;

hashCode'u her zaman geçersiz kılın

== işlecini geçersiz kıldığınızda hashCode değerini de geçersiz kılmanız gerekir. Eşit nesneler aynı özeti paylaşmalıdır; aksi hâlde kümeler ve eşlemeler hatalı davranır.

int get hashCode => name.hashCode;

Object.hash yardımcı yöntemi

Birkaç alanı temiz biçimde birleştirmek için Object.hash kullanın. Bu yöntem, gönderdiğiniz tüm değerlerden tek ve iyi bir özet kodu üretir.

int get hashCode => Object.hash(name, age);

Eşitlik koleksiyonları güçlendirir

Değer eşitliğiyle bir küme gerçek yinelemeleri kaldırabilir, bir eşleme de anahtarları kimliklerine göre değil verilerine göre bulabilir.

İşi araçlara bırakın

equatable veya freezed gibi paketler sizin için ==, hashCode ve copyWith kodlarını üretir; böylece değişmez modelleriniz kısa ve doğru kalır. 🛠️

Hızlı kontrol

Değer eşitliği hakkında hızlı kontrol.

Özet

Değişmez verileri copyWith ile güncellemeyi ve gerçek değer eşitliği için == ile hashCode kullanarak veriye göre karşılaştırma yapmayı öğrendiniz. 🌟

Sıkça Sorulan Sorular

“copyWith ve Değer Eşitliği” dersi ücretsiz mi?

Evet — “copyWith ve Değer Eşitliği” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Dart Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Dart Academy kursu toplamda 4 dersten oluşur.

“copyWith ve Değer Eşitliği” dersinde ne öğreneceğim?

Değişmez verileri güncelleyin ve değerlerine göre karşılaştırın. Dart Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Dart Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Dart Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“copyWith ve Değer Eşitliği” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Dart Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Dart Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Final Alanları ve Derin Değişmezlik
  2. sealed Sınıflar ve Kapsamlı switch
  3. base, interface ve final Belirteçleri
  4. copyWith ve Değer Eşitliği
← Dart Academy Sayfasına Dön