Özet - Veri türleri
- Rust kursu
- Başlangıç
- Ders 18/115
- 5 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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
let kucuk: i32 = 5;
let buyuk: i64 = kucuk.____();
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 |