0Pricing
Dart Academy · Pelajaran

Tipe Extension untuk Wrapper Tanpa Biaya

Membungkus tipe tanpa overhead saat runtime

Tipe Extension untuk Wrapper Tanpa Biaya 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.

Alat yang Berbeda

Tipe ekstensi adalah fitur yang lebih baru: fitur ini membungkus tipe yang sudah ada untuk memberinya antarmuka baru, tanpa biaya saat program berjalan.

Membungkus Tanpa Boxing

Berbeda dari kelas pembungkus sungguhan, tipe ekstensi tidak menambahkan objek apa pun saat program berjalan. Saat program berjalan, tipe ini hanyalah nilai yang mendasarinya.

extension type UserId(int id) {}

Tipe Representasi

Nilai di dalam tanda kurung adalah tipe representasi. Di sini, UserId sebenarnya hanyalah int yang menggunakan nama yang lebih aman.

extension type Meters(double value) {}

Buat dengan Mudah

Anda membuat tipe ekstensi seperti memanggil konstruktor, dengan langsung memasukkan nilai yang mendasarinya.

var id = UserId(42);
var d = Meters(3.5);

Tambahkan Metode yang Aman

Di dalam isi tipe tersebut, Anda dapat menambahkan metode dan getter yang bekerja pada nilai yang dibungkus, sehingga nilai itu memiliki makna nyata.

extension type Meters(double value) {
  Meters plus(Meters o) => Meters(value + o.value);
}

Lebih Kuat daripada typedef

typedef hanyalah alias, sedangkan tipe ekstensi merupakan tipe yang berbeda. Anda tidak akan keliru mencampurkan UserId dengan int biasa.

int raw = 42;
// UserId u = raw; // error: not interchangeable

Sembunyikan API yang Mendasari

Secara bawaan, tipe ekstensi menyembunyikan anggota tipe yang dibungkus, sehingga hanya metode yang Anda tampilkan yang dapat dipanggil.

var m = Meters(2.0);
// m.toStringAsFixed(2); // not available unless exposed

Atau Gunakan implements untuk Menampilkannya

Tambahkan implements untuk meneruskan anggota yang mendasarinya, sehingga pemanggil dapat menggunakan API Anda sekaligus tipe dasarnya.

extension type Score(int value) implements int {}
print(Score(9) + 1); // 10

Tanpa Beban Tambahan Saat Program Berjalan

Karena tidak ada objek sungguhan yang dibuat, tipe ekstensi tidak memerlukan biaya saat program berjalan. Anda mendapatkan keamanan tipe secara gratis.

Cocok untuk ID Domain

Tipe ini sangat berguna untuk pengenal bertipe seperti UserId atau Email, sehingga Anda tidak memasukkan int yang salah ke tempat yang keliru.

void load(UserId id) {}
load(UserId(7)); // load(7) would not compile

Ekstensi vs Tipe Ekstensi

Ekstensi menambahkan metode ke tipe yang digunakan bersama; tipe ekstensi membuat tipe baru yang berbeda di sekitar suatu nilai.

Pemeriksaan Singkat

Pemeriksaan terakhir: apa yang membuat tipe ekstensi istimewa?

Ringkasan: Tipe Ekstensi

Anda telah mengenal tipe ekstensi: pembungkus yang berbeda dan tanpa biaya di sekitar tipe representasi, ideal untuk ID dan satuan yang aman tanpa beban tambahan saat program berjalan. 🏁

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tipe Extension untuk Wrapper Tanpa Biaya” gratis?

Ya — teks lengkap “Tipe Extension untuk Wrapper Tanpa Biaya” 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 “Tipe Extension untuk Wrapper Tanpa Biaya”?

Membungkus tipe tanpa overhead saat runtime 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 “Tipe Extension untuk Wrapper Tanpa Biaya” 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