CodeBlanks Logo Icon CodeBlanks

readonly diziler

readonly dizilerin değiştirilemezliğini öğrenirsin.

readonly diziler

readonly değiştiricisi bir dizinin değiştirilemez olduğunu belirtir. readonly number[] yazdığında, diziye push, pop gibi metotlarla öğe eklenemez veya çıkarılamaz; yalnızca okunabilir. Bu yanlışlıkla veriyi değiştirmeyi önler.

let sabit: readonly number[] = [1, 2, 3];
// sabit.push(4); // Hata
console.log(sabit[0]);  // 1

readonly ve normal dizi farkı

Normal number[] değiştirilebilir; readonly number[] ise değildir. readonly diziyi normal diziye atarken TypeScript uyarır, çünkü değiştirilebilir kopya veri bütünlüğünü bozabilir. Readonly özellikle fonksiyon parametrelerinde veriyi korumak için kullanışlıdır.

function goster(d: readonly number[]) {
    // d.push(5); // Hata
    return d[0];
}

Uygulama Günler dizisi

gunler adında readonly string[] dizisi tanımla ve içine "pzt", "sal", "çar" değerlerini koy. Sonra diziyi console.log ile yazdır.

Başlangıç kodu

index.ts
// readonly string dizisi tanımla ve yazdır

Örnek çözüm

index.ts
let gunler: readonly string[] = ["pzt", "sal", "çar"];
console.log(gunler);

Beklenen çıktı

[ 'pzt', 'sal', 'çar' ]

Soru ve cevaplar

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

1 `readonly string[]` ile tanımlanan dizi üzerinde hangi işlem geçerlidir?

  • Dizinin ilk öğesini değiştirmek
  • Diziyi pop ile küçültmek
  • Diziye push ile öğe eklemek
  • Diziyi okumak (ör. sabit[0]) Doğru cevap

Açıklama: readonly diziye yalnızca okuma yapılabilir; `push`, `pop` ve öğe atama derleme hatası verir.

2 readonly dizi tanımla

Soru
let puanlar: ____ = [90, 85, 70];
Cevap
let puanlar: readonly number[] = [90, 85, 70];

Açıklama: `readonly number[]`, değiştirilemez bir sayı dizisi tanımlar; yalnızca `number[]` veya `Array<number>` yazmak readonly korumasını eklemez.

3 readonly davranışları

Kavram Anlamı
readonly number[] Değiştirilemez sayı dizisi
number[] Değiştirilebilir sayı dizisi
sabit.push(4) readonly dizide hata verir
sabit[0] readonly dizide geçerli

Başlangıç bölümündeki tüm dersler