ফাংশন

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.
  • ঘোষিত পরামিতির পরে তার টাইপ লাগানো হয়ে (এই জিনিস তা অনেক প্রোগ্রামিং ভাষার তুলনায় বিপরীত) এবং তার পরে একটি রিটার্ন টাইপ দেওয়া হয়ে।
  • একটি ফাংশন বডি (বা যেকোনো ব্লক) এর শেষ অভিব্যক্তি সেটির ফেরতগামী মান হয়ে যায়। শুধু অভিব্যক্তির শেষে ; বাদ দিন। return কীওয়ার্ডটি প্রাথমিক রিটার্নের জন্য ব্যবহার করা যেতে পারে, কিন্তু একটি ফাংশনের শেষে "বেয়ার ভ্যালু" ফর্মটি বাগ্বৈশিষ্ট্যসম্মত (gcd টাতে return লাগিয়ে আবার লিখে দেখুন)।
  • অনেক ফাংশনের রিটার্ন টাইপ থাকে না এবং তারা 'একক বা ইউনিট টাইপ ' বা () রিটার্ন করে থাকে। কম্পাইলার এটি নিজে-নিজেই অনুমান করে নিতে পারবে যদি -> () রিটার্ন টাইপ বাদ দেওয়া হয়।
  • ওভারলোডিং সমর্থিত নয় -- প্রতিটি ফাংশনের শুধু একটি বাস্তবায়ন থাকতে পারে।
    • সর্বদা একটি নির্দিষ্ট সংখ্যক পরামিতি লাগে। রেস্ট এ ডিফল্ট আর্গুমেন্ট সমর্থিত নয। ম্যাক্রো দিয়ে বৈচিত্র্যময় বা ভ্যারিয়াডিক ফাংশন ব্যবহার করা যেতে পারে।
    • সর্বদা পরামিতির টাইপ একটি একক সেট-ই লাগে। এই টাইপগুলি জেনেরিক হতে পারে। জেনেরিক পরে আলোচনা করা হবে।