Tamsayılar
- Rust kursu
- Başlangıç
- Ders 13/115
- 4 dk
i32, u64 gibi işaretli ve işaretsiz tamsayı türlerini öğrenirsin.
Tamsayılar
Rust tam sayıları işaretli (i8, i16, i32, i64, i128) ve işaretsiz (u8 … u128) olarak ayırır; sayı bit genişliğidir. isize/usize işlemci genişliğindedir ve dizinlerde kullanılır. Varsayılan i32'dir.
let a: u8 = 255; // 0..=255
let b: i8 = -128; // -128..=127
let buyuk = 1_000_000; // _ okunurluk içindir
let hex = 0xff; // 255u8 bir bayt için idealdir; kimlik ve sayaçlar için çoğunlukla u32/u64 seçilir.
Taşma ve açık davranış
Çalışma anındaki taşma debug derlemede panic üretir. Davranışı açıkça seçmek için yöntemler kullanılır:
let x: u8 = 250;
println!("{:?}", x.checked_add(10)); // None
println!("{}", x.wrapping_add(10)); // 4
println!("{}", x.saturating_add(10)); // 255Para ve sayaç hesaplarında checked_* yöntemleri taşmayı hata olarak yakalamanı sağlar.
Uygulama Taşma yöntemleri
let x: u8 = 250; için x.checked_add(10), x.wrapping_add(10) ve x.saturating_add(10) sonuçlarını println!("{:?} {} {}", ...) ile yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let x: u8 = 250;
println!("{:?} {} {}", x.checked_add(10), x.wrapping_add(10), x.saturating_add(10));
}Beklenen çıktı
None 4 255
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>let x: u8 = 256;</code> ne olur?
- Çalışma anında panic
- Derleme hatası: değer aralık dışında Doğru cevap
- x 0 olur
- x 255 olur
Açıklama: u8 en fazla 255 tutar; derleyici sabit değerin taşmasını derleme anında reddeder.
2 Doyum toplamı
let x: u8 = 250;
let y = x.____(10); // 255
let x: u8 = 250;
let y = x.saturating_add(10); // 255
Açıklama: saturating_add taşma olursa türün en büyük değerinde durur.
3 Tür ve aralık
| Kavram | Anlamı |
|---|---|
u8 |
0..=255 |
i8 |
-128..=127 |
usize |
Dizin türü |
i32 |
Varsayılan tam sayı |