Parametreler ve Argümanlar
Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 50 / 75.
Bir fonksiyondaki argüman, fonksiyonu çağırdığınızda fonksiyona geçirdiğiniz bir değerdir. Bir fonksiyona argüman eklemek için onları parantez () içine yazarız:
fn function_name(arg1: data_type, arg2: data_type, ...) {
// kod
}Argümanları istediğimiz gibi adlandırabiliriz ve ihtiyacımız olduğu kadar çok argüman yazabiliriz.
Bir fonksiyonu çağırmak ve ona argümanlar iletmek için şöyle yazarız:
function_name(value1, value2, value3, ...);Daha az argüman bekleyen bir fonksiyona çok fazla argüman geçirmek, programın hata vermesine neden olacaktır.
Kullanım örneği:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
for i in 15..34 {
is_even(i);
}
for i in 153..219 {
is_even(i);
}Burada, number adında bir argüman alan ve sayının çift mi yoksa tek mi olduğunu yazdıran is_even adında bir fonksiyonumuz var. Ardından fonksiyonu iki kez çağırıyoruz: birincisi 15 ile 34 arasındaki tüm sayılar için, ikincisi 153 ile 219 arasındaki tüm sayılar için.
Görev
Kolayİki giriş sayısı alan bir program yazın. Giriş sayıları fonksiyonun argümanlarıdır.
İki argüman alan, bunların çarpımını hesaplayan ve yazdıran bir fonksiyon oluşturun, fonksiyona istediğiniz ismi verin.
Fonksiyonu giriş sayıları ile çağırın.
Not! Kodunuzda, fonksiyonu çağrılma/yürütme ifadelerinden önce yazın.
Kopya kağıdı
Bir fonksiyona argüman eklemek için, bunları veri tipleriyle birlikte parantez içine yazın:
fn function_name(arg1: data_type, arg2: data_type) {
// kod
}Değerleri argüman olarak geçirerek bir fonksiyonu çağırın:
function_name(value1, value2);Tek argümanlı örnek:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
is_even(42);Bir fonksiyona çok fazla argüman geçirmek programın hata vermesine neden olur
Kendin dene
use std::io;
// Fonksiyon bildirimi
fn main() {
let mut input_a = String::new();
let mut input_b = String::new();
io::stdin().read_line(&mut input_a).unwrap();
io::stdin().read_line(&mut input_b).unwrap();
let a: i32 = input_a.trim().parse().unwrap();
let b: i32 = input_b.trim().parse().unwrap();
// Fonksiyonu a ve b argümanlarıyla çağır
}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