CodeBlanks Logo Icon CodeBlanks

Recursive generic types

Kendini çağıran generic türleri öğrenirsin.

Recursive generic type nedir?

Bir recursive (özyinelemeli) generic type, tanımında kendine başvuran türdür. Örneğin ağaç yapısı türleri böyle tanımlanır. type Agac<T> = { deger: T; sol?: Agac<T>; sag?: Agac<T> } ifadesi, kendi içinde aynı türü tekrar referans alır.

type Agac<T> = {
  deger: T;
  sol?: Agac<T>;
  sag?: Agac<T>;
};

Recursive type ile derin erişim

Recursive generic type, derin iç içe veriye tür güvenli erişim sağlar. Her düğüm hem kendi değerini hem de aynı türden alt düğümleri taşır. sol ve sag alanları opsiyoneldir; böylece yaprak düğümlerde alt dal olmayabilir.

const yaprak: Agac<number> = { deger: 5 };
const dal: Agac<number> = {
  deger: 3,
  sol: { deger: 1 }
};

Uygulama Agac nesnesi oluştur

Agac adında bir recursive generic type tanımla: <T> = { deger: T; sol?: Agac<T>; sag?: Agac<T> }. kok değişkeni Agac<number> türünde olsun ve değeri { deger: 1, sol: { deger: 2 } } olsun. kok.sol.deger değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// Agac adinda recursive generic type tanimla
// deger, opsiyonel sol ve sag alanlari olsun
// kok nesnesi number parametreyle olsun
// kok.sol.deger yazdir

Örnek çözüm

index.ts
type Agac<T> = {
  deger: T;
  sol?: Agac<T>;
  sag?: Agac<T>;
};
const kok: Agac<number> = { deger: 1, sol: { deger: 2 } };
console.log(kok.sol.deger);

Beklenen çıktı

2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir recursive generic type aşağıdakilerden hangisinde tipik olarak kullanılır?

  • Tek değerli sayılar için
  • Yalnızca stringler için
  • Ağaç veya liste gibi kendini tekrar eden yapılar için Doğru cevap
  • Sabit uzunluklu diziler için

Açıklama: Recursive generic type, ağaç ve bağlı liste gibi kendini tekrar eden iç içe yapıları tanımlamak için kullanılır.

2 Recursive generic parametre

Soru
type Agac<T> = {
  deger: T;
  sol?: ____<T>;
  sag?: Agac<T>;
};
Cevap
type Agac<T> = {
  deger: T;
  sol?: Agac<T>;
  sag?: Agac<T>;
};

Açıklama: Recursive type kendine başvurur; sol ve sag alanları yine Agac<T> türünden olmalıdır.

3 Recursive generic kavramları

Kavram Anlamı
Agac<T> Kendine başvuran tür
deger Düğüm değeri
sol? Opsiyonel sol alt ağaç
sag? Opsiyonel sağ alt ağaç

İleri seviye bölümündeki tüm dersler