Dilimler: Bir İşaretçi ve Uzunluk
Bir dizinin içindeki pencereye başvurun.
Dilimler: Bir İşaretçi ve Uzunluk, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Why Slices Exist
Arrays carry a fixed length, but functions often need to work with any length. A slice solves this by describing a flexible run of elements. 🔪
Two Pieces of Data
A slice is really just two things bundled together: a pointer to the first element and a length counting how many follow.
The Slice Type
You write a slice type as []T, with empty brackets and an element type. This []i32 means a slice of signed integers.
var view: []i32 = undefined;Slices Borrow, Not Own
A slice does not own its memory; it borrows a view into something else, usually an array. The backing data must outlive the slice.
Length Lives at Runtime
Unlike an array, a slice's len is a runtime value. That is exactly what lets one slice type cover many different sizes.
const n = view.len;From Array to Slice
Take a whole array as a slice with [0..], meaning from index zero to the end. The slice now points into that array.
var data = [_]i32{ 5, 6, 7 };
const s = data[0..];Indexing a Slice
Read elements through a slice exactly like an array, using square brackets. The index is added to the stored pointer to find the value.
const middle = s[1];Read-Only Slices
A []const u8 is a slice you may read but not write through. The const protects the borrowed data from accidental changes.
const msg: []const u8 = "hi";Passing Slices Is Cheap
Handing a slice to a function copies only the pointer and length, never the elements. Big buffers pass with no extra cost.
fn sum(items: []const i32) i32 {
// walk items here
}Slices Stay Bounds-Checked
Because a slice knows its length, indexing it is still checked. Going past len triggers a safety panic in safe builds.
Empty Slices Are Valid
A slice can hold zero elements. An empty slice simply has len equal to 0, which is perfectly normal to pass around.
const nothing: []const i32 = &[_]i32{};Quick Check
Think about what a slice actually stores compared to a fixed array. Which pair describes it?
Recap
A slice is a pointer plus a length that borrows a view into existing data, stays bounds-checked, and passes cheaply by reference. 🎯
Sıkça Sorulan Sorular
“Dilimler: Bir İşaretçi ve Uzunluk” dersi ücretsiz mi?
Evet — “Dilimler: Bir İşaretçi ve Uzunluk” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.
“Dilimler: Bir İşaretçi ve Uzunluk” dersinde ne öğreneceğim?
Bir dizinin içindeki pencereye başvurun. Zig Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Zig Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Zig Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Dilimler: Bir İşaretçi ve Uzunluk” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Zig Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Zig Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sabit Boyutlu Diziler
- Dilimler: Bir İşaretçi ve Uzunluk
- array[start..end] ile Dilimleme
- Dilimler Üzerinde Yineleme ve Değişiklik Yapma