# Null

Adres: https://softwaredictionary.org/tr/terimler/null
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-30
Okunuşu: nal

Kısaca: Null, “burada değer yok” anlamına gelen özel bir değerdir; bir değişken bilerek hiçbir nesneye ya da veriye başvurmadığında kullanılır.

## Programlamada null nedir?

Null, bir değişkenin bilerek hiçbir değer tutmadığını gösteren bir işarettir. Eksik bir ikinci ad, eşleşme bulamayan bir arama ya da boş bırakılmış bir veritabanı sütunu null ile temsil edilebilir. Diller bunu farklı yazar: Java, JavaScript, C# ve Kotlin'de `null`, Python'da `None`, Ruby, Go ve Swift'te `nil`, C ve C++'ta `NULL` ya da `nullptr`.

Null vardır, çünkü değişkenler sıklıkla nesnelere başvurur ve bazen başvurulacak bir nesne yoktur. Sorun, kodun bir değerin var olduğunu varsayıp onu kullanmaya çalışmasıyla başlar: null üzerinde bir metot çağırmak Java'nın `NullPointerException` hatası ya da JavaScript'in `TypeError: Cannot read properties of null` hatası gibi hatalara yol açar. Null referansları 1965'te icat eden Tony Hoare, neden oldukları hata ve çökme sayısı nedeniyle onlara daha sonra “milyar dolarlık hatam” dedi.

Modern diller, yokluğu tür sisteminde açık hâle getirerek riski azaltır. Kotlin, Swift, katı (strict) TypeScript ve null olabilen referans türlerine sahip C#'ta `String?` ya da `string | null` gibi bir tür kullanılmadan önce denetlenmelidir ve unutursanız derleyici şikâyet eder. Rust ve Haskell'de hiç null yoktur, bunun yerine `Option` veya `Maybe` türleri kullanılır. İsteğe bağlı zincirleme (`user?.address`) ve null birleştirme (`name ?? "Guest"`) gibi operatörler bu denetimleri kısa tutar.

Null sıklıkla diğer “boş” değerlerle karıştırılır. Boş bir dize, `0` sayısı ve boş bir liste gerçek değerlerdir; null ise hiç değer olmadığı anlamına gelir. JavaScript bir komşu daha ekler: `undefined` genellikle bir değerin hiç atanmadığı anlamına gelirken `null` bilerek atanır. SQL'de `NULL` bilinmeyen anlamına gelir; bu yüzden `NULL = NULL` doğru değildir ve bunun yerine `IS NULL` ile sınamanız gerekir.

## Önemli noktalar

- Null, bir değerin bilerek yokluğunu temsil eder.
- Null'ı gerçek bir nesneymiş gibi kullanmak en yaygın çalışma zamanı hatalarından bazılarına yol açar.
- Kotlin, Swift, TypeScript ve C# null olabilen türleri derleme zamanında izleyebilir.
- Rust ve Haskell, `Option` ve `Maybe` türleriyle null'dan tamamen kaçınır.
- Null, `""`, `0` ya da boş liste gibi boş değerlerden farklıdır.

## Örnek: TypeScript'te null olabilen bir değeri ele almak

```typescript
interface User {
  name: string;
  nickname: string | null; // may be missing on purpose
}

function displayName(user: User): string {
  // user.nickname.toUpperCase() would not compile: it might be null
  return user.nickname ?? user.name;
}

displayName({ name: "Ada", nickname: null });     // "Ada"
displayName({ name: "Grace", nickname: "Amazing" }); // "Amazing"
```

## Sık sorulan sorular

**JavaScript'te null ile undefined arasındaki fark nedir?**

`undefined` genellikle bir değişkene ya da özelliğe hiç değer verilmediği anlamına gelirken `null`, “değer yok” anlamında bilerek atanır. `null == undefined` doğrudur, ancak farklı türler oldukları için `null === undefined` yanlıştır.

**Null pointer exception nedir?**

Kodun bir null referansı sanki gerçek bir nesneyi gösteriyormuş gibi, örneğin üzerinde bir metot çağırarak kullanmaya çalışması durumunda ortaya çıkan hatadır. Java buna `NullPointerException` der; diğer dillerde farklı adlarla benzer hatalar vardır.

**Null neden milyar dolarlık hata olarak adlandırılır?**

1965'te null referansları ALGOL W diline ekleyen bilgisayar bilimcisi Tony Hoare, null'ın neden olduğu çökmelerin ve hataların muazzam maliyetini anlatmak için 2009'da bu ifadeyi kullandı. Bu yüzden birçok yeni dil, eksik değerlerin açıkça ele alınmasını zorunlu kılar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
