Rust Veri Tipleri: Scalar ve Compound Tipler

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Top Poster Of Month
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Rust, "tip güvenliği" (type safety) konusunda çok titiz bir dildir. Derleme aşamasında her değişkenin tipinin ne olduğu kesinlikle bilinmelidir. Çoğu zaman Rust derleyicisi yazdığınız koddan tipi tahmin eder (type inference), ancak bazen kontrolü ele alıp tipi sizin belirtmeniz gerekir.
Rust'ta veri tipleri iki ana kategoriye ayrılır: Scalar (Skaler) ve Compound (Bileşik).

1. Scalar (Skaler) Tipler​

Scalar tipler, tek bir değeri temsil eder. Rust'ta dört temel skaler tip vardır: tam sayılar, ondalıklı sayılar, booleanlar ve karakterler.

Tam Sayılar (Integers)​

Tam sayılar, kesirli kısmı olmayan sayılardır. Rust, belleği verimli kullanmak için işaretli (negatif olabilir) ve işaretsiz (sadece pozitif) birçok varyasyon sunar:
Boyutİşaretli (Signed)İşaretsiz (Unsigned)
8-biti8u8
32-biti32u32
64-biti64u64
Mimari (64/32 bit)isizeusize
Not: Varsayılan tam sayı tipi i32'dir. isize ve usize genellikle bellek adresleme veya dizinleme işlemlerinde kullanılır.

Ondalıklı Sayılar (Floating-Point)​

Rust'ta ondalıklı sayılar için iki ana tip vardır: f32 ve f64. Modern işlemcilerde f64, f32 ile neredeyse aynı hızda çalışırken daha fazla hassasiyet sunduğu için varsayılan olarak f64 kullanılır.

Boolean ve Character​

  • Boolean: Sadece true veya false değerini alır. 1 byte boyutundadır.
  • Char: Rust'ta char tipi 4 byte boyutundadır ve sadece ASCII değil, Unicode karakterleri de (emoji, Çince karakterler vb.) temsil edebilir.
Kod:
 let emoji: char = '🚀'; let dogru_mu: bool = true;

2. Compound (Bileşik) Tipler​

Bileşik tipler, birden fazla değeri tek bir grup altında toplamanıza olanak tanır. Rust'ta iki temel bileşik tip bulunur: Tuple ve Array.

Tuple (Demet)​

Farklı tiplerdeki verileri bir araya getirmek için kullanılır. Tuple'ların boyutu sabittir; bir kez tanımlandıktan sonra büyümez veya küçülmezler.
Kod:
 fn main() { let kisi_bilgisi: (i32, f64, char) = (25, 1.85, 'E');
[CODE]// Verilere erişim:
let yas = kisi_bilgisi.0;
let boy = kisi_bilgisi.1;

// Destructuring (Parçalara ayırma)
let (x, y, z) = kisi_bilgisi;
} [/CODE]

Array (Dizi)​

Diziler, aynı tipteki birden fazla veriyi toplar. Rust'ta dizilerin boyutu sabittir. Eğer boyutun değişmesini istiyorsanız Vector (vektör) kullanmalısınız.
Kod:
 let a: [i32; 5] = [1, 2, 3, 4, 5]; let aylar = ["Ocak", "Şubat", "Mart"];
// Tüm elemanları aynı olan dizi: let bes_tane_sifir = [0; 5]; // [0, 0, 0, 0, 0]

3. Bellek Yerleşimi: Stack ve Heap​

Veri tiplerini anlamak, Rust'ın belleği nasıl yönettiğini anlamanın anahtarıdır.
  • Stack (Yığın): Skaler tipler ve sabit boyutlu diziler gibi boyutu derleme zamanında bilinen veriler stack'te saklanır. Bu veriler kopyalanırken çok hızlıdır.
  • Heap (Öbek): String veya Vector gibi boyutu çalışma zamanında değişebilen veriler heap'te saklanır. Bu verilerin yönetimi Rust'ın meşhur Ownership kurallarına tabidir.

Özet Tablosu​

TipTürüDeğişebilir mi?Örnek
i32ScalarEvet (mut ile)42
charScalarEvet (mut ile)'A'
TupleCompoundEvet (Eleman bazlı)(1, "test")
ArrayCompoundEvet (Sabit Boyut)[1, 2, 3]
 
Geri
Üst