Meneruskan Nilai vs Referensi
Pelajari cara argumen sampai ke fungsi Anda.
Meneruskan Nilai vs Referensi 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.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
How Arguments Travel
When you call a function, Zig must get your data inside it. There are two routes: pass the value itself or pass a reference to it. 🚚
Passing by Value Copies
By default, primitive arguments are passed by value: the function gets its own copy and cannot change your original.
fn addOne(n: i32) i32 {
return n + 1;
}Copies Stay Independent
Because it is a copy, edits inside the function never touch the caller. Your variable outside stays exactly as it was.
Parameters Are Immutable
Function parameters in Zig are immutable. You cannot reassign a parameter inside the body, which keeps intent clear.
Pass a Pointer to Share
To let a function change your data, pass a pointer with *T. The function then works on your actual value, not a copy.
fn bump(n: *i32) void {
n.* += 1;
}Dereference to Reach It
Inside, you use .* to read or write through the pointer. n.* += 1 updates the value the caller still holds.
Take the Address with &
At the call site you pass an address using &. Then bump(&count) lets the function modify count in place.
var count: i32 = 0;
bump(&count); // count is now 1Big Data Prefers References
For large structs, copying is wasteful. Passing a const pointer shares the data cheaply without allowing changes.
fn area(r: *const Rect) i32 {
return r.w * r.h;
}const Pointer Means Read-Only
A *const T lets the function read your data but never write it. You get speed without giving up safety.
Slices Are Already Views
A slice like []const u8 carries a pointer plus a length, so passing it shares the underlying data without a full copy.
Choose Based on Intent
Pass by value for small, read-only data; pass a pointer when you must mutate or when the data is large.
Quick Check
You want a function to change the caller variable. Which parameter form lets it do that?
Recap
Values are copied and cannot change your originals; pointers share them. Use *T to mutate and *const T to read large data fast. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Meneruskan Nilai vs Referensi” gratis?
Ya — teks lengkap “Meneruskan Nilai vs Referensi” 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 “Meneruskan Nilai vs Referensi”?
Pelajari cara argumen sampai ke fungsi 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 “Meneruskan Nilai vs Referensi” 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
- Sintaks Fungsi dan Tipe Kembalian
- Meneruskan Nilai vs Referensi
- Fungsi pub dan Visibilitas
- Rekursi dan Beberapa Nilai Kembalian