Veri Tipleri: Scalar ve Compound Tipler (İnceleme)

  • 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, statik tipli bir dildir; yani derleyici, her değişkenin hangi tipte olduğunu derleme anında bilmek zorundadır. Rust'ta veri tipleri iki ana gruba ayrılır: Scalar (tek bir değer içeren) ve Compound (birden fazla değeri bir araya getiren) tipler.

1. Scalar (Skaler) Tipler​

Skaler tipler, bellekte tek bir değeri temsil eder. Rust'ta dört ana skaler tip vardır:

A. Tam Sayılar (Integers)​

İşaretli (i) veya işaretsiz (u) olabilirler. Boyutları 8 bit ile 128 bit arasında değişir.
Boyutİşaretliİşaretsiz
8-biti8u8
32-biti32u32 (Varsayılan)
64-biti64u64
Archisizeusize (Bellek adresleme için)

B. Kayan Noktalı Sayılar (Floating-Point)​

Ondalıklı sayılar için kullanılır. Modern işlemcilerde f64 hızı f32 ile neredeyse aynı olduğu için varsayılan tip f64'tür.

C. Boolean​

Sadece true veya false değerini alır. 1 bayt boyutundadır.

D. Karakter (Char)​

Rust'ta char tipi 4 bayt boyutundadır ve Unicode değerlerini temsil eder. Yani sadece 'a' değil, '🚀' veya 'ç' gibi karakterleri de saklayabilir.

2. Compound (Bileşik) Tipler​

Bileşik tipler, birden fazla değeri tek bir tip altında gruplar.

A. Tuple (Demet)​

Farklı tiplerdeki değerleri bir araya getirir. Sabit bir uzunluğu vardır; tanımlandıktan sonra büyüyüp küçülemezler.
Rust
Kod:
let demet: (i32, f64, u8) = (500, 6.4, 1);

// Değerlere erişim (Destructuring)
let (x, y, z) = demet; 

// Nokta operatörü ile erişim
let bes_yuz = demet.0;

B. Array (Dizi)​

Diziler, aynı tipteki birden fazla değeri saklar. Rust'ta dizilerin uzunluğu sabittir ve bellekte stack üzerinde tutulurlar.
Rust
Kod:
let dizi: [i32; 3] = [10, 20, 30];
let ilk_eleman = dizi[0];
Not: Eğer uzunluğu değişebilen bir liste istiyorsanız, Rust'ın standart kütüphanesindeki Vector yapısını kullanmalısınız.

3. Tip Güvenliği ve Dönüşümler​

Rust'ta farklı tipler arasında otomatik dönüşüm (implicit conversion) yoktur. Örneğin, bir i32 ile f64 sayısını doğrudan toplayamazsınız. Açıkça belirtmeniz gerekir:
Rust
Kod:
let tam_sayi: i32 = 5;
let ondalikli: f64 = 2.5;

let sonuc = tam_sayi as f64 + ondalikli; // 'as' anahtar kelimesi ile dönüşüm

Özet Tablo​

TipÖrnekKullanım Amacı
Integer42Sayma, matematiksel işlemler.
Float3.14Hassas ölçümler, ondalıklı veriler.
Char'A'Tekil karakterler ve emojiler.
Tuple(1, "elma")Geçici veri grupları.
Array[1, 2, 3]Sabit sayıda, aynı tipteki öğeler.
 
Geri
Üst