Dart Academy · Pelajaran

Anggota Extension Static dan Konflik

Menyelesaikan benturan dan menambahkan helper static

Pelajaran 3 dari 413 langkah

Anggota Extension Static dan Konflik adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Dua Pembantu, Nama Sama

Impor dua ekstensi yang sama-sama menambahkan metode bernama parse ke String, dan Dart tidak lagi tahu metode mana yang Anda maksud.

Mengapa Konflik Terjadi

Anggota ekstensi bukan bagian dari tipe itu sendiri, jadi dua metode dengan nama sama menjadi sebuah ambiguitas yang tidak mau ditebak oleh kompiler.

Temukan Kesalahannya

Saat hal ini terjadi, Dart melaporkan ekstensi yang ambigu lalu berhenti, alih-alih memilih salah satunya secara diam-diam.

"7".parse(); // error: ambiguous between two extensions

Sembunyikan Salah Satunya Saat Impor

Gunakan hide pada impor untuk menghapus satu ekstensi yang bertentangan berdasarkan namanya, sehingga ekstensi lain dapat digunakan untuk pemanggilan tersebut.

import 'b.dart' hide NumberParsing;

Atau Tampilkan Hanya Satu

Trik kebalikannya adalah show, yang hanya mengimpor nama-nama yang Anda cantumkan dan secara diam-diam mengecualikan sisanya.

import 'a.dart' show NumberParsing;

Panggil Secara Eksplisit

Anda juga dapat menentukan penerapan secara tepat dengan explicit: sebutkan nama ekstensi dan teruskan nilainya di dalam tanda kurung.

NumberParsing("7").parse();

Tambahkan Anggota Statis

Ekstensi juga dapat memiliki anggota statis. Anggota ini menjadi bagian dari nama ekstensi, bukan dari nilai tempat Anda memanggil metode.

extension MathX on num {
  static num clampLow(num x) => x < 0 ? 0 : x;
}

Akses Anggota Statis berdasarkan Nama

Panggil anggota statis melalui nama ekstensi, sama seperti anggota statis pada kelas. Nilai penerima tidak terlibat.

print(MathX.clampLow(-3)); // 0

Anggota Statis Memerlukan Nama

Karena anggota statis diakses melalui ekstensi, ekstensi tanpa nama tidak dapat menyediakannya. Beri nama ekstensi tersebut untuk menggunakan anggota statis.

Anggota Instans dan Anggota Statis

Anggota instans menggunakan this dan bekerja pada suatu nilai; anggota statis mengabaikan nilai tersebut dan berada pada ekstensi itu sendiri.

Rencanakan agar Tidak Saling Bertabrakan

Berikan nama dan anggota yang jelas serta spesifik pada ekstensi. Penamaan yang baik mencegah sebagian besar konflik sebelum show atau hide diperlukan.

Pemeriksaan Singkat

Satu konflik, satu perbaikan yang rapi. Mana yang berhasil?

Ringkasan: Anggota Statis dan Konflik

Anda dapat menyelesaikan ekstensi yang bertabrakan dengan show, hide, atau pemanggilan eksplisit, serta menambahkan anggota statis yang diakses melalui nama ekstensi. 🧩

Gratis untuk memulai

Belajar Dart dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Anggota Extension Static dan Konflik” gratis?

Ya — teks lengkap “Anggota Extension Static dan Konflik” 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 “Anggota Extension Static dan Konflik”?

Menyelesaikan benturan dan menambahkan helper static 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 3 dari 4.

Berapa lama pelajaran “Anggota Extension Static dan Konflik” 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. Menulis Extension Pertama Anda
  2. Extension pada Generics
  3. Anggota Extension Static dan Konflik
  4. Tipe Extension untuk Wrapper Tanpa Biaya
← Kembali ke Dart Academy