Method dan Parameter self
Tambahkan perilaku ke struct Anda.
Method dan Parameter self adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Data dan Perilaku
Struct dapat menyimpan lebih dari sekadar bidang. Anda dapat mendeklarasikan methods di dalamnya: fungsi yang bekerja pada data miliknya.
Fungsi Berada di Dalam
Tuliskan fn biasa di dalam isi struct. Fungsi tersebut menjadi bagian dari ruang nama tipe dan dapat dipanggil sebagai Type.name.
const Point = struct {
x: i32,
y: i32,
fn origin() Point {
return Point{ .x = 0, .y = 0 };
}
};Parameter self
Method yang bekerja pada sebuah instans menerima nilai tersebut sebagai parameter pertamanya, yang secara konvensional dinamai self.
fn magnitude(self: Point) i32 {
return self.x + self.y;
}Panggil dengan Titik
Panggil method melalui sebuah instans dengan titik. Zig secara otomatis meneruskan instans tersebut sebagai self untuk Anda.
const p = Point{ .x = 3, .y = 4 };
const m = p.magnitude();self Hanyalah Argumen
Tidak ada sihir tersembunyi. Pemanggilan dengan titik p.magnitude() persis sama dengan Point.magnitude(p).
const m = Point.magnitude(p);Membaca self Berdasarkan Nilai
Menerima self berdasarkan nilai memberi Anda sebuah salinan. Ini baik untuk membaca bidang, tetapi perubahan pada salinan tidak akan tersimpan.
fn sum(self: Point) i32 {
return self.x + self.y;
}Perubahan Memerlukan Penunjuk
Untuk mengubah bidang, terima self sebagai penunjuk dengan *Point. Kini penulisan dilakukan pada instans asli, bukan salinan.
fn moveRight(self: *Point) void {
self.x += 1;
}Referensi Otomatis Saat Pemanggilan
Saat sebuah metode membutuhkan *Point, Zig akan mengambil alamat var Anda secara otomatis. Anda tetap cukup menulis p.moveRight().
var p = Point{ .x = 0, .y = 0 };
p.moveRight();Gunakan @This untuk Tipe
Di dalam isi tipe, Anda dapat merujuk ke tipe yang melingkupinya dengan @This(), yang berguna saat tipe tersebut belum memiliki nama luar.
const Counter = struct {
n: i32,
fn get(self: @This()) i32 {
return self.n;
}
};Metode Tanpa self
Sebuah metode tidak harus menerima self. Konstruktor dan fungsi pembantu sering melewatkannya dan bertindak sebagai fungsi namespaced biasa.
fn init(x: i32, y: i32) Point {
return Point{ .x = x, .y = y };
}Mengatur Kode dengan Metode
Mengelompokkan perilaku di dekat data membuat kode Anda tetap rapi. Metode membuat sebuah struktur terbaca seperti komponen kecil yang mandiri.
Pemeriksaan Singkat
Apa yang diperlukan metode untuk mengubah bidang-bidang suatu instans?
Ringkasan
Anda telah menambahkan metode: fungsi di dalam struktur, dengan self sebagai instansnya. Gunakan self: Point untuk membaca dan self: *Point untuk mengubah nilai. 🔧
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Method dan Parameter self” gratis?
Ya — teks lengkap “Method dan Parameter self” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Method dan Parameter self”?
Tambahkan perilaku ke struct Anda. Kamu berlatih Zig 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 Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig 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 2 dari 4.
Berapa lama pelajaran “Method dan Parameter self” 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 Zig Academy ini?
Ya. Setiap pelajaran Zig 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
- Mendeklarasikan Struct dan Field
- Method dan Parameter self
- Nilai Bawaan Field
- Struct Anonim dan Tuple