توابع
fn gcd(a: u32, b: u32) -> u32 { if b > 0 { gcd(b, a % b) } else { a } } fn main() { println!("gcd: {}", gcd(143, 52)); }
This slide should take about 3 minutes.
- بعد اعلان تابع پارامترهای ورودی و نوع آن و سپس یک نوع برگشتی هستند (برخلاف برخی از زبانهای برنامهنویسی).
- آخرین عبارت در بدنه تابع (یا هر بلوک دیگری) به عنوان مقدار برگشتی در نظر گرفته میشود. به همین سادگی
;
را میتوان در انتهای عبارت حذف کنید. - Some functions have no return value, and return the 'unit type',
()
. The compiler will infer this if the return type is omitted. - بارگذاری مجدد (overloading) پشتیبانی نمیشود -- هر تابع فقط یک پیادهسازی دارد.
- همیشه تعداد ثابتی از پارامترها را می گیرد. آرگومان های پیش فرض پشتیبانی نمی شوند. ماکروها را می توان برای پشتیبانی از توابع متغیر استفاده کرد.
- همیشه یک مجموعه واحد از انواع آرگومانها را میگیرد.