সরাসরি প্রধান সামগ্রীতে চলে যান

রাস্ট ল্যাঙ্গুয়েজে ফাংশন এর সহজ পাঠ

Introduction: সবাইকে স্বাগতম! আজকের এই কন্টেন্টে আমরা রাস্ট (Rust) প্রোগ্রামিং ল্যাঙ্গুয়েজের অন্যতম গুরুত্বপূর্ণ একটি বিষয়—ফাংশন (Functions) সম্পর্কে শিখবো। সহজ কথায় বলতে গেলে, ফাংশন হলো কিছু কোডের সমষ্টি যা নির্দিষ্ট কোনো কাজ করার জন্য তৈরি করা হয়। আমরা জানবো কীভাবে ফাংশন লিখতে হয়, কীভাবে ডাটা পাস করতে হয় এবং ফাংশন থেকে কীভাবে কোনো রেজাল্ট ফেরত বা 'রিটার্ন' নিতে হয়।


১. ফাংশন এবং মেইন (Main) ফাংশন কি?

ভিডিও রেফারেন্স: [00:16]

রাস্ট ল্যাঙ্গুয়েজে ফাংশন খুব বেশি ব্যবহৃত হয়। আপনি যখনই একটি রাস্ট প্রোগ্রাম লিখবেন, সেখানে অন্তত একটি ফাংশন থাকতেই হবে, যার নাম হলো main ফাংশন। এটি হলো প্রোগ্রামের শুরু বা এন্ট্রি পয়েন্ট।

বিস্তারিত: ফাংশন বানানোর জন্য রাস্ট-এ fn কিওয়ার্ড ব্যবহার করা হয়। মনে রাখবেন, রাস্ট-এ ফাংশনের নাম লেখার সময় Snake Case (যেমন: my_function_name) ফলো করা ভালো। মানে সব অক্ষর ছোট হাতের হবে এবং শব্দগুলোর মাঝখানে আন্ডারস্কোর (_) থাকবে।

  • সহজ ব্যাখা (Snake Case): এটি কোড লেখার একটি স্টাইল। যেমন আমরা সাধারণত "MyFunction" লিখি, কিন্তু স্নেক কেসে এটি হবে "my_function"।

২. ফাংশন ডিক্লেয়ারেশন এবং কল করা

ভিডিও রেফারেন্স: [02:29]

ফাংশন শুধু লিখে রাখলেই কাজ করে না, একে 'কল' বা ডাকতে হয়।

Rust

fn main() {
    println!("হ্যালো মেইন ফাংশন থেকে!");
    my_function(); // এখানে ফাংশনটিকে কল করা হয়েছে
}

fn my_function() {
    println!("হ্যালো মাই ফাংশন থেকে!");
} 

কোড ব্যাখ্যা: এখানে fn my_function() দিয়ে একটি ফাংশন তৈরি করা হয়েছে। আর main ফাংশনের ভেতর থেকে যখন my_function() লিখলাম, তখনই সে কাজ শুরু করল। আপনি চাইলে একটি ফাংশনকে যতবার ইচ্ছা কল করতে পারেন।


৩. প্যারামিটার এবং আর্গুমেন্ট (Parameters & Arguments)

ভিডিও রেফারেন্স: [08:04]

মাঝে মাঝে ফাংশনকে কিছু ডাটা দিতে হয় কাজ করার জন্য। যেমন একটি ফাংশন যদি দুটি সংখ্যা যোগ করে, তবে তাকে সংখ্যা দুটি তো দিতে হবে! এই ইনপুটগুলোকে বলা হয় প্যারামিটার।

বিস্তারিত: ফাংশন যখন ডিফাইন করা হয়, তখন আমরা বলে দেই সে কী ধরনের ডাটা নেবে। রাস্ট-এ প্যারামিটারের টাইপ (যেমন: i32 বা bool) বলে দেওয়া বাধ্যতামূলক।

  • সহজ ব্যাখা (i32): এটি রাস্ট-এ একটি সাধারণ পূর্ণসংখ্যা (Integer) ডাটা টাইপ।

Rust

fn main() {
    print_number(10); // ১০ হলো এখানে আর্গুমেন্ট
}

fn print_number(x: i32) { // x: i32 হলো প্যারামিটার
    println!("সংখ্যাটি হলো: {}", x);
} 

৪. স্টেটমেন্ট বনাম এক্সপ্রেশন (Statements vs Expressions)

ভিডিও রেফারেন্স: [13:02]

এটি রাস্টের একটি চমৎকার কনসেপ্ট। রাস্ট একটি 'Expression Based' ল্যাঙ্গুয়েজ।

  • Statement (স্টেটমেন্ট): এটি শুধু একটা নির্দেশ যা কোনো মান ফেরত দেয় না। যেমন: let y = 6; এর শেষে সেমিকোলন (;) থাকে।

  • Expression (এক্সপ্রেশন): এটি কোনো কিছু হিসাব করে একটি মান তৈরি করে। যেমন: 5 + 5 যা ১০ তৈরি করে। এক্সপ্রেশনের শেষে সাধারণত সেমিকোলন থাকে না।


৫. ফাংশন থেকে মান রিটার্ন করা (Returning Values)

ভিডিও রেফারেন্স: [22:25]

ফাংশন কাজ শেষ করে যখন আমাদের কোনো রেজাল্ট দেয়, তাকে রিটার্ন করা বলে। রিটার্ন টাইপ বোঝাতে আমরা তীরের মতো চিহ্ন -> ব্যবহার করি।

Rust

fn main() {
    let result = add_numbers(5, 10);
    println!("যোগফল হলো: {}", result);
}

fn add_numbers(x: i32, y: i32) -> i32 {
    x + y // এখানে কোনো সেমিকোলন নেই, তাই এটি সরাসরি রিটার্ন হবে
} 

কোড ব্যাখ্যা: এখানে -> i32 মানে হলো এই ফাংশনটি একটি পূর্ণসংখ্যা ফেরত দেবে। শেষ লাইনে x + y লিখেছি কিন্তু সেমিকোলন দেইনি, তাই রাস্ট বুঝে নিয়েছে এটাই রিটার্ন করতে হবে।

  • সহজ ব্যাখা (Return Early): অনেক সময় কাজ শেষ হওয়ার আগেই ফাংশন থেকে বের হয়ে যেতে হয়। তখন return কিওয়ার্ড ব্যবহার করা হয়।

বিশ্লেষণ ও আমার ভাবনা

কন্টেন্ট ক্রিয়েটর এখানে রাস্টের ফাংশনকে খুব সহজভাবে বুঝিয়েছেন। রাস্টের একটি বড় বৈশিষ্ট্য হলো এর টাইপ সেফটি—মানে আপনাকে আগে থেকেই বলে দিতে হবে আপনি কী ডাটা নিয়ে কাজ করছেন। এতে ভুল হওয়ার সম্ভাবনা কমে যায়।

বাস্তবসম্মত উপলব্ধি: অনেকে শুরুতে 'Expression' আর 'Statement' এর পার্থক্য নিয়ে গোলমাল করে ফেলে। মনে রাখবেন, যদি সেমিকোলন দেন, তবে সেটি একটি স্টেটমেন্ট হয়ে যায় এবং কোনো মান রিটার্ন করে না। রাস্ট-এ ফাংশনের শেষ লাইনে সেমিকোলন না দিয়ে সরাসরি রেজাল্ট লেখাটা অনেক দ্রুত এবং ক্লিন কোড লেখার উপায়।

বিকল্প ও পরামর্শ: আপনি যদি সি (C) বা জাভা (Java) থেকে আসেন, তবে আপনার হয়তো বারবার return লিখতে ইচ্ছা করবে। কিন্তু রাস্ট-এ ইমপ্লিসিট রিটার্ন (সেমিকোলন ছাড়া শেষ লাইন) ব্যবহার করাটাই স্ট্যান্ডার্ড। এটি আপনার কোডকে আরও ছোট এবং পড়তে সহজ করবে।

চেষ্টা করে দেখুন: নিজে একটি ফাংশন লিখুন যা আপনার নাম প্রিন্ট করবে অথবা দুটি বড় সংখ্যার গুণফল বের করবে। বারবার প্র্যাকটিস করলে রাস্টের এই স্টাইলটি আপনার কাছে খুব সহজ হয়ে যাবে!

[

Functions in Rust | Rust Book

Piyush Garg · 4.9K views

](http://www.youtube.com/watch?v=lvwa9yV5oSM)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...