CodeBlanks Logo Icon CodeBlanks

Özet - Veri türleri

Farklı türleri birleştirerek bir not hesaplama programı yazarsın.

Veri türleri özeti

Skaler türler: tam sayılar (i8…i128, u8…u128, isize/usize), ondalıklar (f32, f64), bool, char (4 bayt Unicode). Bileşik türler: tuple (T1, T2) ve dizi [T; N]. Türler arası dönüşüm as ile açıkça yapılır; taşma için checked_*/wrapping_*/saturating_* yöntemleri vardır.

Güvenli dönüşüm

as sessizce keser; değerin sığıp sığmadığını kontrol etmek için TryFrom kullanılır:

let buyuk: i32 = 300;
match u8::try_from(buyuk) {
    Ok(v) => println!("sığdı: {v}"),
    Err(e) => println!("sığmadı: {e}"),
}

Kayıpsız dönüşümler için From/into vardır: let x: i64 = 5_i32.into();.

Uygulama Dönüşüm karşılaştırması

let n: i32 = 300; için n as u8 sonucunu ve u8::try_from(n).is_err() sonucunu println!("{} {}", ...) ile yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn main() {
    let n: i32 = 300;
    println!("{} {}", n as u8, u8::try_from(n).is_err());
}

Beklenen çıktı

44 true

Soru ve cevaplar

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

1 <code>300 as u8</code> kaçtır?

  • 44 Doğru cevap
  • 255
  • Derleme hatası
  • 300

Açıklama: as tam sayı dönüşümünde yüksek bitleri keser: 300 - 256 = 44. Güvenli dönüşüm için u8::try_from(300) hata döndürür.

2 Kayıpsız dönüşüm

Soru
let kucuk: i32 = 5;
let buyuk: i64 = kucuk.____();
Cevap
let kucuk: i32 = 5;
let buyuk: i64 = kucuk.into();

Açıklama: into, From uygulanmış türler arasında kayıpsız dönüşüm yapar.

3 Grubun özeti

Kavram Anlamı
i32 / f64 Varsayılan sayı türleri
char 4 bayt Unicode
(T1, T2) Tuple
[T; N] Sabit uzunluklu dizi

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

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma