Zig Academy · Ders

@Type ile Türler Oluşturma

Yeni türleri program aracılığıyla oluşturun.

2. ders / 413 adım

@Type ile Türler Oluşturma, 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.

@typeInfo'nun Tersi

@typeInfo bir türü veriye dönüştürüyorsa @Type veriyi yeniden gerçek bir türe dönüştürür. Birlikte türleri derleme zamanında yeniden şekillendirmenizi sağlarlar. 🛠️

Ona Bir Type.Info Değeri Verin

@Type bir std.builtin.Type değeri alır ve bunun açıkladığı somut türü üretir. Ona bir açıklama verirsiniz, o da size bir tür verir.

const T = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 8 } });

Bir Tamsayı Türü Oluşturun

Yukarıdaki örnek, u8 türünü sıfırdan oluşturur. bits değerini 16 yaparsanız u16 elde edersiniz; bunların tümü program derlenirken belirlenir.

const U16 = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 16 } });

Bir Türü Gidip Geri Dönüştürün

Bir türü @typeInfo üzerinden geçirip ardından @Type uygulamak aynı türü döndürür. Bu, iki yerleşik işlevin birbirinin tam tersi olduğunu kanıtlar.

const Same = @Type(@typeInfo(u32));

Bir Yapıyı Veri Olarak Açıklayın

Bir yapı oluşturmak için bir StructField dizisini doldurursunuz. Her alanın adı, türü, hizalaması ve varsayılan işaretçisi gerekir.

const f = std.builtin.Type.StructField;

Yapı İçeriğini Birleştirin

Alanlarınızı bir yerleşim ve is_tuple bayrağı içeren .Struct içeriğine sarın, ardından tamamını @Type işlevine verin.

const info = .{ .Struct = .{
    .layout = .auto,
    .fields = my_fields,
    .decls = &.{},
    .is_tuple = false,
} };

Yeni Bir Yapı Türü Üretin

Bu içerik üzerinde @Type çağrısı yaptığınızda, elle yazmak yerine kendi mantığınızla oluşturduğunuz yepyeni bir yapı türü elde edersiniz.

const Generated = @Type(info);

Varsayılanlar İçin Bir Comptime İşaretçisi Gerekir

Bir alanın default_value değeri, değere yönelik isteğe bağlı bir const işaretçisidir; varsayılan değer yoksa null olur. İşaretçi comptime sırasında bilinmelidir.

const dv: ?*const anyopaque = &@as(u8, 0);

Sıralamalar ve Daha Fazlasını Oluşturun

Aynı yöntem yapılarla sınırlı değildir: .Enum içeriği, @Type işlevinin hesaplanmış bir üye listesinden sıralama türleri oluşturmasını sağlar.

Türleri Neden Oluşturmalı?

Üretilen türler serileştiricilere ve ORM'lere güç verir: paketlenmiş bir yapılandırma veya satır türünü elle düzenlemek yerine otomatik olarak türetebilirsiniz. ✨

Yansımayla Birleştirin

En güçlü yaklaşım, bir türü @typeInfo ile okumak, veriyi dönüştürmek ve ardından @Type ile yeni bir tür oluşturmaktır; örneğin bir alan eklemek gibi.

Hızlı Kontrol

Bir yapıyı açıklayan std.builtin.Type değeriniz var. Bunu kullanılabilir bir türe ne dönüştürür?

Özet

@Type, Type.Info verisinden gerçek türler oluşturur ve @typeInfo'nun tersidir. Türleri okumak, dönüştürmek ve yeniden üretmek için bu ikisini birlikte kullanın. 🎯

Başlamak ücretsiz

Yapay zeka eğitmeniyle Zig öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“@Type ile Türler Oluşturma” dersi ücretsiz mi?

Evet — “@Type ile Türler Oluşturma” 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.

“@Type ile Türler Oluşturma” dersinde ne öğreneceğim?

Yeni türleri program aracılığıyla oluşturun. 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.

“@Type ile Türler Oluşturma” 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. @typeInfo ile Alanları İnceleme
  2. @Type ile Türler Oluşturma
  3. Derleme Zamanı Doğrulama ve @compileError
  4. comptime ile Kod Üretme
← Zig Academy Sayfasına Dön