0Pricing
Zig Academy · Ders

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

  1. Zig'de Gizli Bellek Ayırma Neden Yoktur?
  2. Ayırıcı Arayüzü
  3. alloc, free, create, destroy
  4. ArrayList ile Dinamik Listeler
← Zig Academy Sayfasına Dön