Desenler ve Çözümlenme (Destructuring)
Rust, bir tuple gibi daha büyük bir değeri, onu oluşturan parçalara çözümlemek (destructure) için desen eşleştirmeyi (pattern matching) kullanmayı destekler:
fn check_order(tuple: (i32, i32, i32)) -> bool { let (left, middle, right) = tuple; left < middle && middle < right } fn main() { let tuple = (1, 5, 3); println!( "{tuple:?}: {}", if check_order(tuple) { "sıralanmış" } else { "sıralı de" } ); }
This slide should take about 5 minutes.
- Burada kullanılan desenler “reddedilemez (irrefutable)“dir, yani derleyici
=
sağındaki değerin desenle aynı yapıya sahip olduğunu statik olarak doğrulayabilir. - Bir değişken adı, her zaman herhangi bir değerle eşleşen reddedilemez (irrefutable) bir desendir, bu nedenle tek bir değişkeni bildirmek için
let
’i kullanabiliriz. - Rust ayrıca koşullu ifadelerde desenlerin (patterns) kullanılmasını destekleyerek eşitlik karşılaştırmasının (comparison) ve çözümlenmenin (destructuring) aynı anda gerçekleşmesine olanak tanır. Bu desen eşleştirme stili daha sonra daha ayrıntılı olarak tartışılacaktır.
- Desenin (pattern) eşleştirilen değerle eşleşmediğinde oluşacak derleyici hatasını göstermek için yukarıdaki örnekleri düzenleyin.