Tuple
- Rust kursu
- Başlangıç
- Ders 16/115
- 4 dk
Tuple (demet) ile farklı türleri tek bir değerde gruplarsın.
Tuple
Tuple farklı türlerden sabit sayıda değeri bir arada tutar. Elemanlara .0, .1 ile erişilir ya da let ile parçalanır:
let kisi: (&str, u32, bool) = ("Ada", 36, true);
println!("{}", kisi.0); // Ada
let (ad, yas, _) = kisi;
println!("{ad} {yas}");Fonksiyonlardan birden çok değer döndürmenin en kolay yolu tuple'dır: fn min_max(...) -> (i32, i32).
Tuple döndürmek
Bölüm ve kalanı birlikte döndüren bir fonksiyon:
fn bol(a: i32, b: i32) -> (i32, i32) {
(a / b, a % b)
}
let (bolum, kalan) = bol(17, 5);
println!("{bolum} {kalan}"); // 3 2Elemanları anlamlı olan büyük veri için tuple yerine adlandırılmış alanlı struct tercih edilir; kisi.1'in ne olduğu zamanla unutulur.
Uygulama Bölüm ve kalan
fn bol(a: i32, b: i32) -> (i32, i32) fonksiyonunu yaz. let (q, r) = bol(17, 5); ile parçala ve println!("{q} {r}"); yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn bol(a: i32, b: i32) -> (i32, i32) {
(a / b, a % b)
}
fn main() {
let (q, r) = bol(17, 5);
println!("{q} {r}");
}Beklenen çıktı
3 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boş tuple <code>()</code> neyi temsil eder?
- null
- Boş dizi
- "Değer yok"; birim (unit) türü Doğru cevap
- Hata
Açıklama: Değer döndürmeyen fonksiyonlar aslında () döndürür; println! de () döndürür.
2 İkinci eleman
let nokta = (3, 7);
println!("{}", nokta.____); // 7
let nokta = (3, 7);
println!("{}", nokta.1); // 7
Açıklama: Tuple elemanları 0'dan başlayan .0, .1 ile okunur.
3 İfade ve sonuç
| Kavram | Anlamı |
|---|---|
(1, "a").1 |
"a" |
let (x, _) = (5, 6) |
x = 5 |
() |
Birim tür |
(a / b, a % b) |
İki değer döndürür |