Veri Tipi
Bir değişkenin hangi tür değeri tutabileceğini ve üzerinde hangi işlemlerin yapılabileceğini belirten sınıflandırma.
Veri tipi, bir değişkende saklanabilecek verinin doğasını ve izin verilen işlemleri tanımlar. Tipler, doğru veri işlemeyi sağlar.
İlkel (Primitive) Tipler:
- Tamsayı (Integer): Tam sayılar (int, long)
- Kayan Noktalı (Float/Double): Ondalık sayılar
- Mantıksal (Boolean): doğru/yanlış
- Karakter (Char): Tek harf/sembol
- Metin (String): Karakter dizisi
Bileşik (Composite) Tipler:
- Dizi (Array): Aynı türden elemanlar topluluğu
- Nesne (Object): Kullanıcı tanımlı yapı
- Yapı (Struct): İsimlendirilmiş alanlar grubu
Tip Sistemleri:
- Statik Tipleme: Derleme zamanında kontrol edilir (Java, C++)
- Dinamik Tipleme: Çalışma zamanında kontrol edilir (Python, JS)
- Güçlü (Strong) Tipleme: Katı tip kuralları
- Zayıf (Weak) Tipleme: Otomatik tip dönüşümü
graph LR
Center["Veri Tipi"]:::main
Rel_boolean["boolean"]:::related -.-> Center
click Rel_boolean "/terms/boolean"
Rel_data_modeling["data-modeling"]:::related -.-> Center
click Rel_data_modeling "/terms/data-modeling"
Rel_data_structure["data-structure"]:::related -.-> Center
click Rel_data_structure "/terms/data-structure"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5 yaşındaki gibi açıkla
Veri tipi farklı kaplar gibidir: kumbara bozuk paraları (sayılar), kitaplık kitapları (metin) ve trafik ışığı kırmızı/yeşili ([boolean](/tr/terms/boolean)) tutar. Her kap kendi işi için yapılmıştır!
🤓 Expert Deep Dive
Hindley-Milner tip çıkarımı, notasyon olmadan statik tiplemeyi sağlar. Cebirsel veri tipleri (toplam/çarpım tipleri) etkileyici modellemeyi mümkün kılar. Bağımlı tipler (Idris) kısıtlamaları tiplere kodlar. Kademeli tipleme (TypeScript) statik ve dinamiği birleştirir. Tip silme (Type erasure), çalışma zamanında tipleri kaldırır (Java generics).