0Pricing
Dart Academy · Pelajaran

copyWith dan Kesetaraan Nilai

Memperbarui data immutable dan membandingkannya berdasarkan nilai

copyWith dan Kesetaraan Nilai adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.

Memperbarui Data yang Tidak Dapat Diubah

Anda tidak dapat mengubah objek yang tidak dapat diubah, jadi untuk memperbaruinya Anda harus membuat objek baru. Pola yang melakukannya dengan rapi adalah copyWith.

Fungsi copyWith

Metode copyWith mengembalikan objek baru, mempertahankan nilai saat ini untuk field yang Anda lewati dan mengganti hanya field yang Anda berikan.

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

Menulis copyWith

Setiap parameter dapat bernilai null dan secara bawaan menggunakan field yang sudah ada. Dengan begitu, pemanggil dapat mengganti hanya field yang diperlukan.

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

Jebakan Null

Trik ?? this.field berarti Anda tidak dapat menetapkan null ke sebuah field dengan copyWith. Sebagian besar model data menerima keterbatasan kecil ini.

Kesetaraan Bawaan

Secara bawaan, dua objek hanya dianggap sama jika keduanya adalah instans yang sama. Dua salinan dengan data identik tetap dianggap berbeda.

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

Tujuan Kesetaraan Nilai

Sering kali Anda ingin objek dianggap sama ketika datanya cocok, bukan ketika identitasnya sama. Ini disebut kesetaraan nilai, dan Anda harus mengaktifkannya.

Menimpa operator ==

Definisikan operator == untuk membandingkan field yang penting. Kini dua objek dengan data yang sama akan diperlakukan sebagai objek yang setara.

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

Selalu Menimpa hashCode

Setiap kali Anda menimpa ==, Anda juga harus menimpa hashCode. Objek yang setara harus memiliki hash yang sama, atau Set dan Map akan berperilaku keliru.

int get hashCode => name.hashCode;

Pembantu Object.hash

Gabungkan beberapa field dengan rapi menggunakan Object.hash. Fungsi tersebut menghasilkan satu kode hash yang baik dari semua nilai yang Anda berikan.

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

Kesetaraan Memperkuat Koleksi

Dengan kesetaraan nilai, sebuah Set dapat menghapus duplikat yang benar-benar sama, dan Map dapat menemukan kunci berdasarkan datanya, bukan identitasnya.

Biarkan Alat yang Mengerjakannya

Paket seperti equatable atau freezed dapat membuat ==, hashCode, dan copyWith untuk Anda, sehingga model yang tidak dapat diubah tetap ringkas dan benar. 🛠️

Pemeriksaan Singkat

Pemeriksaan singkat tentang kesetaraan nilai.

Ringkasan

Anda telah mempelajari cara memperbarui data yang tidak dapat diubah dengan copyWith dan membandingkan berdasarkan data menggunakan == serta hashCode untuk mendapatkan kesetaraan nilai yang sebenarnya. 🌟

Pertanyaan yang Sering Diajukan

Apakah pelajaran “copyWith dan Kesetaraan Nilai” gratis?

Ya — teks lengkap “copyWith dan Kesetaraan Nilai” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “copyWith dan Kesetaraan Nilai”?

Memperbarui data immutable dan membandingkannya berdasarkan nilai Kamu berlatih Dart Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Dart Academy?

Tidak diperlukan pengalaman sebelumnya. Dart Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “copyWith dan Kesetaraan Nilai” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Dart Academy ini?

Ya. Setiap pelajaran Dart Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Field final dan Immutabilitas Mendalam
  2. Class sealed dan switch Menyeluruh
  3. Modifier base, interface, dan final
  4. copyWith dan Kesetaraan Nilai
← Kembali ke Dart Academy