توابع (Functions)
تابع (Function) یک بلوک کد است. فقط وقتی صدا می زنی اجرا می شود. با توابع، کد منظم تر می شود و تکرار کم می شود. تصور کن یک «دکمه آماده» داری که هر بار کار مشخصی را انجام می دهد.
ساختن تابع
با کلمه fn تابع می سازیم. بعد نام تابع، پرانتزها و آکولادها می آیند.
fn function_name() {
// code to be executed
}
فراخوانی تابع
برای اجرا، نام تابع را بنویس و پرانتزها را اضافه کن. مثل زدن دکمه در بازی.
fn say_hello() {
println!("Hello from a function!");
}
say_hello();
پارامترها (Parameters)
پارامتر یعنی ورودی تابع. داخل پرانتزها می آید. مثل نام در فرم.
fn greet(name: &str) {
println!("Hello, {}!", name);
}
greet("John");
مقدار بازگشتی (Return Value)
تابع می تواند مقداری برگرداند. نوع خروجی پس از -> می آید. با return مقدار برمی گردد.
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
let sum = add(3, 4);
println!("Sum is: {}", sum);
نکته: می توانی return را حذف کنی. کافی است آخرین خط را بدون سمی کالن بنویسی.
fn add(a: i32, b: i32) -> i32 {
a + b
}
let sum = add(3, 4);
println!("Sum is: {}", sum);
چرا از توابع استفاده کنیم؟
کد مرتب تر می شود. تکرار کمتر می شود. تغییرات ساده تر می شود. مثل ساخت قطعه های لگو و استفاده دوباره.
گام های تمرین
- یک تابع ساده بساز و پیامی چاپ کن.
- به آن یک پارامتر رشته بده.
- تابعی با خروجی عددی بنویس.
- نسخه بدون
returnرا تست کن.
جمع بندی سریع
fnشروع ساخت تابع است.- فراخوانی با نام و
()است. - پارامترها داخل پرانتزها هستند.
- خروجی پس از
->تعریف می شود. - آخرین خط بدون
;هم خروجی می شود.
بعد از تسلط بر توابع، سر بزن به اسکوپ برای محدوده متغیرها. همچنین مرور کن حلقه های for برای تکرار کنترل شده.