Birden Fazla Dönüş Değeri
Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 52 / 75.
Rust'ta, bir fonksiyon dönüş türü olarak bir demet (tuple) kullanarak birden fazla değer döndürebilir. Bir demet (tuple), tek bir birim halinde paketlenmiş farklı değerler grubudur.
Örneğin:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // Bir demet döndür
}Fonksiyonu şu şekilde çağırabilirsiniz:
let (x, y) = get_coordinates();
// Demeti ayrı değişkenlere
// ayrıştırın
println!("{}, {}", x, y);Demet (tuple) yapısına daha fazla öğe ekleyerek ihtiyacınız olan sayıda değer döndürebilirsiniz. Örneğin:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
// Üç değer içeren bir demet döndür
}Ve fonksiyon şu şekilde çağrılır:
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);Görev
KolayBir kullanıcının adını, yaşını ve e-posta adresini içeren bir demet (tuple) döndüren get_user_info adında bir fonksiyon oluşturun. Fonksiyon şu imzaya sahip olmalıdır:
fn get_user_info() -> (String, i32, String)Fonksiyonun içinde şu değişkenleri oluşturun:
name: "Bob" olarak başlatılmış birStringage: 25 olarak başlatılmış biri32email: "bob@example.com" olarak başlatılmış birString
Bu üç değeri bir demet (tuple) olarak döndürün.
main fonksiyonu içinde, get_user_info fonksiyonunu çağırın ve döndürülen demeti name, age ve email adındaki ayrı değişkenlere ayrıştırın (destructure). Ardından, bu değerleri println! kullanarak şu formatta konsola yazdırın:
Name: [name], Age: [age], Email: [email]Kopya kağıdı
Fonksiyonlar, dönüş türü olarak demetleri (tuples) kullanarak birden fazla değer döndürebilir:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // Return a tuple
}Fonksiyonu çağırın ve demeti ayrı değişkenlere ayrıştırın (destructure):
let (x, y) = get_coordinates();
println!("{}, {}", x, y);Farklı türlerde birden fazla değer döndürebilirsiniz:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
}let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);Kendin dene
fn get_user_info() -> (String, i32, String) {
// Burada isim, yaş ve e-posta değişkenlerini oluşturun
// Demeti (tuple) döndürün
}
fn main() {
// get_user_info fonksiyonunu çağırın ve döndürülen demeti ayrıştırın
// Değerleri yazdırın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fundamentals bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik Girdi