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

Rust ল্যাঙ্গুয়েজে কন্ট্রোল ফ্লো বা কোড চালানোর নিয়মাবলী

এই কন্টেন্টটি মূলত Rust প্রোগ্রামিং ল্যাঙ্গুয়েজের Control Flow (কন্ট্রোল ফ্লো) নিয়ে। সহজ কথায়, একটি প্রোগ্রাম কখন কোন কোডটুকু চালাবে এবং কোন কাজ বারবার করবে, তা নিয়ন্ত্রণ করাই হলো কন্ট্রোল ফ্লো। আমরা এই ভিডিও এবং আলোচনার মাধ্যমে শিখব কীভাবে if-else ব্যবহার করতে হয় এবং Rust-এ কত ধরণের লুপ (loop, while, for) আছে।


১. ইফ-এলস এক্সপ্রেশন (If-Else Expressions)

রেফারেন্স: [00:41]

Rust-এ কোনো শর্তের ওপর ভিত্তি করে কোড চালানোর জন্য if ব্যবহার করা হয়। যদি শর্তটি সত্য হয়, তবে কোডটি চলে; না হলে else ব্লকের কোডটি চলে।

বিস্তারিত আলোচনা: অন্যান্য অনেক ল্যাঙ্গুয়েজে (যেমন জাভাস্ক্রিপ্ট) যেকোনো মানকে সত্য বা মিথ্যা ধরা যায়, কিন্তু Rust খুব কড়া। এখানে if-এর ভেতরের শর্তটিকে অবশ্যই Boolean (বুলিয়ান) হতে হবে। অর্থাৎ এর উত্তর শুধু 'হ্যাঁ' (True) বা 'না' (False) হতে পারবে। আপনি সরাসরি কোনো নাম্বার (যেমন if 1) দিয়ে শর্ত চেক করতে পারবেন না।

  • সহজ ব্যাখ্যা: ধরুন, আপনি দোকানে যাবেন যদি বৃষ্টি না হয়। এখানে "বৃষ্টি না হওয়া" হলো শর্ত।

  • কঠিন শব্দ: * Boolean (বুলিয়ান): এমন এক ধরণের ডাটা যার মান শুধু true অথবা false হতে পারে।

কোড উদাহরণ:

Rust

fn main() {
    let number = 7;

    if number < 5 {
        println!("কন্ডিশনটি সত্য ছিল");
    } else {
        println!("কন্ডিশনটি মিথ্যা ছিল");
    }
} 

ব্যাখ্যা: এখানে number যদি ৫-এর ছোট হয় তবে প্রথম অংশ কাজ করবে, অন্যথায় else অংশটি কাজ করবে। আমাদের কোডে ৭ যেহেতু ৫-এর চেয়ে বড়, তাই এটি "মিথ্যা ছিল" প্রিন্ট করবে।


২. ভ্যারিয়েবলে সরাসরি ইফ ব্যবহার করা

রেফারেন্স: [09:14]

Rust-এ if কোনো স্টেটমেন্ট নয়, এটি একটি Expression (এক্সপ্রেশন)। এর মানে হলো আপনি সরাসরি কোনো ভ্যারিয়েবলের মান নির্ধারণ করতে if ব্যবহার করতে পারেন।

কোড উদাহরণ:

Rust

fn main() {
    let condition = true;
    let number = if condition { 5 } else { 6 };

    println!("নাম্বারটি হলো: {}", number);
} 

ব্যাখ্যা: এখানে যদি condition সত্য হয় তবে number এর মান হবে ৫, নাহলে ৬। তবে মনে রাখবেন, if এবং else উভয় ব্লক থেকে একই ধরণের ডাটা (যেমন দুটোই নাম্বার) ফেরত আসতে হবে।


৩. লুপের মাধ্যমে কোড বারবার চালানো (Repetition with Loops)

রেফারেন্স: [11:09]

যখন কোনো কাজ বারবার করার প্রয়োজন হয়, তখন লুপ ব্যবহার করা হয়। Rust-এ প্রধানত ৩ ধরণের লুপ আছে:

ক) Loop (সাধারণ লুপ)

এটি একটি অনন্ত লুপ (Infinite Loop)। এটি চলতেই থাকে যতক্ষণ না আপনি নিজে থেকে break কমান্ড দিয়ে এটি থামান।

  • Break: লুপ থামানোর জন্য।

  • Continue: লুপের বর্তমান ধাপ বাদ দিয়ে পরের ধাপে যাওয়ার জন্য।

খ) While Loop (শর্তসাপেক্ষ লুপ)

যতক্ষণ একটি নির্দিষ্ট শর্ত সত্য থাকে, ততক্ষণ এই লুপ কাজ করে। রেফারেন্স: [22:05]

Rust

fn main() {
    let mut number = 3;
    while number != 0 {
        println!("{}!", number);
        number -= 1;
    }
    println!("কাজ শেষ!");
} 

গ) For Loop (কালেকশন লুপ)

এটি সবচেয়ে বেশি ব্যবহৃত এবং নিরাপদ লুপ। বিশেষ করে কোনো লিস্ট বা অ্যাররে (Array)-এর প্রতিটি উপাদানের ওপর কাজ করতে এটি সেরা। রেফারেন্স: [28:08]

কোড উদাহরণ:

Rust

fn main() {
    let a = [10, 20, 30, 40, 50];

    for element in a {
        println!("মানটি হলো: {}", element);
    }
} 

সহজ ব্যাখ্যা: while লুপে ভুল করে ভুল ইনডেক্স দিলে প্রোগ্রাম ক্রাশ করতে পারে (যাকে Panic বলা হয়), কিন্তু for লুপে সেই ভয় নেই কারণ এটি নিজে থেকেই লিস্টের শেষ পর্যন্ত গিয়ে থেমে যায়।


৪. রেঞ্জ (Range) ব্যবহার করে লুপ

রেফারেন্স: [29:47]

আপনি যদি ১ থেকে ১০ পর্যন্ত সংখ্যা প্রিন্ট করতে চান, তবে (1..11) এভাবে একটি রেঞ্জ তৈরি করে for লুপ চালাতে পারেন।

Rust

fn main() {
    for number in (1..4).rev() { // .rev() মানে উল্টো দিক থেকে ৩, ২, ১
        println!("{}...", number);
    }
    println!("উড্ডয়ন শুরু!");
} 

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

কন্টেন্ট ক্রিয়েটর এখানে Rust-এর মেমোরি সেফটি এবং স্ট্রিনজেন্ট টাইপ সিস্টেমের ওপর জোর দিয়েছেন।

বাস্তবতা ও সম্ভাবনা: ১. নিরাপত্তা (Safety): Rust আপনাকে ভুল ইনডেক্স বা ভুল ডাটা টাইপ ব্যবহার করতে দেয় না, যা রান-টাইম এরর কমিয়ে দেয়। ২. পারফরম্যান্স: Rust-এর লুপগুলো খুব দ্রুত কারণ কম্পাইলার কোডটিকে অপ্টিমাইজ করে দেয়। ৩. বিকল্প: যারা জাভাস্ক্রিপ্ট বা পাইথন থেকে আসছেন, তাদের কাছে শুরুতে if-এর কড়া নিয়মগুলো কঠিন মনে হতে পারে। তবে বড় প্রোজেক্টে এই কড়াকড়িই আপনার কোডকে বাগ-মুক্ত রাখবে।

পরামর্শ: আপনি যদি নতুন হন, তবে সরাসরি while লুপ ব্যবহার না করে for লুপ ব্যবহার করার অভ্যাস করুন। এটি আপনার কোডকে আরও স্মার্ট এবং নিরাপদ করবে। ভিডিওর শেষে দেওয়া চ্যালেঞ্জগুলো (যেমন: ফারেনহাইট থেকে সেলসিয়াস কনভার্টার বানানো) নিজে ট্রাই করে দেখুন, এতে হাত পরিষ্কার হবে।

[

Control Flow in Rust | Rust Book

Piyush Garg · 4.7K views

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

মন্তব্যসমূহ

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

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

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

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

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

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

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