Functions ডিক্লারেশন এবং ব্যবহার

Functions এবং Methods (ফাংশন এবং মেথডস) - রাস্ট (Rust) - Computer Programming

254

Functions কী?

ফাংশন একটি কোডের ব্লক যা একাধিক কাজ সম্পাদন করতে ব্যবহৃত হয়। ফাংশনের মূল উদ্দেশ্য হলো কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো, কোডের পাঠযোগ্যতা উন্নত করা এবং কোডের জটিলতা কমানো। একটি ফাংশন নির্দিষ্ট ইনপুট নিয়ে কাজ করে এবং একটি আউটপুট ফেরত দেয়।

রাস্টে ফাংশন দুটি প্রধানভাবে ব্যবহৃত হয়:

  1. Function Declaration (ফাংশন ডিক্লারেশন)
  2. Function Usage (ফাংশন ব্যবহার)

১. ফাংশন ডিক্লারেশন (Function Declaration)

রাস্টে ফাংশন ডিক্লারেশন সাধারণত fn কীওয়ার্ড দিয়ে শুরু হয়। একটি ফাংশনের ডিক্লারেশনে ফাংশনের নাম, আর্গুমেন্ট এবং রিটার্ন টাইপ উল্লেখ করা হয়।

সিনট্যাক্স:

fn function_name(parameter1: type, parameter2: type) -> return_type {
    // function body
}
  • fn: ফাংশন ডিক্লারেশন শুরুর কীওয়ার্ড।
  • function_name: ফাংশনের নাম।
  • parameter: ফাংশনের ইনপুট (অথবা প্যারামিটার), যার একটি নির্দিষ্ট টাইপ থাকে।
  • -> return_type: ফাংশনের আউটপুট টাইপ, যদি আউটপুট থাকে।
  • {}: ফাংশনের বডি, যেখানে ফাংশনের কোড লেখা হয়।

উদাহরণ:

fn add(a: i32, b: i32) -> i32 {
    a + b
}

এখানে:

  • add ফাংশন দুটি পূর্ণসংখ্যা গ্রহণ করে এবং তাদের যোগফল প্রদান করে।

২. ফাংশন ব্যবহার (Function Usage)

একবার ফাংশন ডিক্লারেশন করা হলে, আপনি সহজেই সেই ফাংশনটি অন্য যেকোনো জায়গায় ব্যবহার করতে পারেন।

সিনট্যাক্স:

function_name(argument1, argument2);

উদাহরণ:

fn main() {
    let result = add(5, 3);
    println!("The sum is: {}", result);
}

এখানে:

  • add(5, 3) ফাংশনকে কল করে দুটি ইনপুট ৫ এবং ৩ প্রদান করা হয়েছে। আউটপুট হিসেবে 8 ফেরত আসবে, যা result এ সংরক্ষিত হবে।
  • println! ম্যাক্রো আউটপুট প্রদর্শন করবে।

৩. ফাংশন রিটার্ন (Function Return)

রাস্টে একটি ফাংশন যদি কোনো আউটপুট ফেরত দিতে চায়, তবে -> return_type ব্যবহার করতে হয়। যদি ফাংশন কোনো মান ফেরত না দেয়, তবে তার রিটার্ন টাইপ () (unit type) হয়।

উদাহরণ:

fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

fn main() {
    let greeting = greet("Alice");
    println!("{}", greeting);
}

এখানে:

  • greet ফাংশন একটি স্ট্রিং আর্গুমেন্ট গ্রহণ করে এবং একটি স্ট্রিং আউটপুট প্রদান করে।

৪. যদি রিটার্ন না থাকে (When No Return is Needed)

যদি ফাংশন থেকে কোনো রিটার্ন মানের প্রয়োজন না হয়, তবে () ব্যবহার করা হয়। এটি একটি বিশেষ টাইপ যা শুধুমাত্র ফাংশনের জন্য ব্যবহৃত হয় এবং তা unit type নামে পরিচিত।

উদাহরণ:

fn print_message() {
    println!("This is a simple message.");
}

fn main() {
    print_message();
}

এখানে:

  • print_message ফাংশনটি কোনো রিটার্ন মান ফেরত দেয় না, শুধু একটি মেসেজ প্রিন্ট করে।

৫. অপশনাল রিটার্ন (Optional Return)

রাস্টে একটি ফাংশন কিছু সময়ে আউটপুট না দিতে পারে। এই জন্য Option<T> ব্যবহার করা হয়, যা একটি ফাংশনকে Some(T) বা None ফেরত দিতে সক্ষম করে।

উদাহরণ:

fn divide(a: i32, b: i32) -> Option<i32> {
    if b == 0 {
        None
    } else {
        Some(a / b)
    }
}

fn main() {
    match divide(10, 2) {
        Some(result) => println!("The result is: {}", result),
        None => println!("Cannot divide by zero."),
    }
}

এখানে:

  • divide ফাংশনটি যদি b == 0 হয়, তবে None ফেরত দেয়, আর যদি না হয় তবে Some(a / b) ফেরত দেয়।

সারাংশ

ফাংশন রাস্টে কোডের পুনঃব্যবহারযোগ্যতা এবং সুসংগতি বৃদ্ধি করতে সহায়ক। রাস্টে ফাংশন ডিক্লারেশন এবং ব্যবহার খুবই সহজ এবং সুবিধাজনক। মেম্বার আর্গুমেন্ট, রিটার্ন টাইপ, এবং ফাংশন কলের মাধ্যমে কোডকে পরিষ্কার ও সংহত রাখা যায়। রাস্টের ফাংশন ব্যবহারের মাধ্যমে আপনি আরও কার্যকর এবং সুরক্ষিত কোড তৈরি করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...