ArrayList ile Dinamik Listeler
Bir ayırıcı tarafından desteklenen arabelleği büyütün.
ArrayList ile Dinamik Listeler, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 4. 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.
Büyüyebilen Bir Arabellek
Bazen boyutu önceden bilemezsiniz. std.ArrayList, öğe ekledikçe büyüyen ve bir allocator tarafından desteklenen dinamik bir dizidir. 📈
Genel Amaçlıdır
ArrayList bir generic türdür: öğe türünü bir kez belirtirsiniz ve tam tür güvenliğiyle yalnızca o türden oluşan bir liste elde edersiniz.
const List = std.ArrayList(i32);init ile Oluşturun
Bir listeyi init ile oluşturur ve büyümek için kullanacağı allocator'ı ona verirsiniz. Allocator, listenin tüm yaşam süresi boyunca listede kalır.
var list = std.ArrayList(i32).init(allocator);Her Zaman deinit Edin
Bir liste heap belleğinin sahibidir; bu nedenle onu free etmek için init'i deinit ile eşleştirin. init'ten hemen sonra yazılan bir defer bu temizlemeyi otomatikleştirir.
var list = std.ArrayList(i32).init(a);
defer list.deinit();Öğeleri Ekleyin
append ile bir öğe ekleyin. Arabelleği büyütmesi gerekebileceğinden başarısız olabilir ve bu nedenle try ile çağrılır.
try list.append(7);Verilere Ulaşın
Mevcut içerik .items slice'ında bulunur. Bu slice'ı diğer tüm Zig slice'ları gibi okuyabilir, dizine erişebilir ve üzerinde yineleme yapabilirsiniz.
for (list.items) |n| std.debug.print("{}\n", .{n});Uzunluk ve Kapasite
length, list.items.len değeridir: depoladığınız değerlerin sayısıdır. Capacity, ayrılmış alandır; sık sık yeniden büyümeyi önlemek için daha büyük olabilir.
Önceden Yer Ayırın
Yaklaşık bir boyut biliyorsanız önce ensureTotalCapacity çağrısı yapın. Bir kez yer ayırmak, liste dolarken tekrarlanan yeniden tahsisleri önler.
try list.ensureTotalCapacity(100);Öğeleri Kaldırın
Son öğeyi pop ile çıkarın veya ortadaki bir öğeyi diziniyle kaldırın. Liste uzunluğunu azaltır, ancak kapasitesini korur.
const last = list.pop();Sahipliği Devredin
Arabelleği sıradan bir slice olarak almak için toOwnedSlice çağrısı yapın. Liste boşalır ve onu free etmekten siz sorumlu olursunuz.
const slice = try list.toOwnedSlice();Temel Yapılar Üzerine Kurulu
ArrayList sizin için alloc, kopyalama ve serbest bırakma işlemlerini yapar. Düzenli ve yeniden kullanılabilir bir türle, açık bellek ayırıcıların ne kadar ileri gidebileceğini gösterir. ✅
Kısa Kontrol
Bir ArrayList artık kullanılmadığında ne yapmanız gerektiğini hatırlayın.
Özet
std.ArrayList'in bir bellek ayırıcıyla dinamik olarak büyüdüğünü öğrendiniz: başlatın, try ile ekleyin, .items ile okuyun ve işiniz bittiğinde her zaman deinit çağırın. 🎯
Sıkça Sorulan Sorular
“ArrayList ile Dinamik Listeler” dersi ücretsiz mi?
Evet — “ArrayList ile Dinamik Listeler” 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.
“ArrayList ile Dinamik Listeler” dersinde ne öğreneceğim?
Bir ayırıcı tarafından desteklenen arabelleği büyütün. 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 4. dersidir.
“ArrayList ile Dinamik Listeler” 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
- Zig'de Gizli Bellek Ayırma Neden Yoktur?
- Ayırıcı Arayüzü
- alloc, free, create, destroy
- ArrayList ile Dinamik Listeler