মূল কন্টেন্টে যান
মডিউল 1 · 2-এর পাঠ 2কোর্সে 2/14~10 min
মডিউল পাঠ (2/2)

আদিম প্রকার

মরিচা হল একটি স্ট্যাটিকলি টাইপ করা ভাষা, যার মানে এটিকে কম্পাইলের সময় সমস্ত ভেরিয়েবলের ধরন জানতে হবে। সাধারণত, কম্পাইলার নির্ধারিত মানের উপর ভিত্তি করে টাইপ অনুমান করতে পারে, তবে কখনও কখনও এটি ম্যানুয়ালি নির্দিষ্ট করা প্রয়োজন বা সহায়ক।

মরিচায় আদিম প্রকারগুলি দুটি প্রধান বিভাগে বিভক্ত: স্ক্যালার (একক মান) এবং যৌগ (মানগুলির গ্রুপ)।

স্কেলার প্রকার

স্কেলার প্রকারগুলি একটি একক মান উপস্থাপন করে। মরিচা চারটি মৌলিক স্কেলার প্রকার রয়েছে:

  1. পূর্ণসংখ্যা: পূর্ণ সংখ্যা। এগুলি স্বাক্ষরিত হতে পারে (i8, i16, i32, i64, i128, isize) অথবা স্বাক্ষরবিহীন (AGYTOK_INLINE_IN_LINE7AGYTOK, INLINE7__6 u32, u64, u128, usize)। ডিফল্ট প্রকার হল i32।
  2. ফ্লোটিং-পয়েন্ট: দশমিক বিন্দু সহ সংখ্যা। সেগুলি f32 বা f64 হতে পারে (ডবল নির্ভুলতা, ডিফল্ট)।
  3. বুলিয়ানস: true বা false (টাইপ bool) এর সাথে যৌক্তিক সত্যের প্রতিনিধিত্ব করুন।
  4. অক্ষর: একটি একক ইউনিকোড স্কেলার মান একক উদ্ধৃতিতে (টাইপ char), যেমন, 'a', 'ℤ', বা ইমোজি '😻'।

স্পষ্ট টাইপ টীকা উদাহরণ:

Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

যৌগিক প্রকার

যৌগিক প্রকারগুলি একাধিক মানকে একক প্রকারে গোষ্ঠীভুক্ত করতে পারে। মরিচা দুটি প্রধান আদিম যৌগ প্রকার আছে:

টিপলস

একটি টুপল বিভিন্ন ধরণের মানকে একটি নির্দিষ্ট-আকারের সংগ্রহে গোষ্ঠীভুক্ত করে:

Rust
let person: (String, i32) = (String::from("Alice"), 30);

// Destructuring to extract values
let (name, age) = person;

// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;

অ্যারে (স্থির আকারের তালিকা)

একটি অ্যারে স্ট্যাকে সংরক্ষিত একটি নির্দিষ্ট-আকারের সংগ্রহে একই ধরনের একাধিক উপাদানকে গ্রুপ করে:

Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];

আপনি যদি অ্যারের সীমানার বাইরে একটি সূচক অ্যাক্সেস করার চেষ্টা করেন (যেমন, numbers[10]), অননুমোদিত মেমরি অ্যাক্সেসের অনুমতি দেওয়ার পরিবর্তে রানটাইমে অবিলম্বে মরিচা ক্র্যাশ (আতঙ্কিত) হবে।

তুলনা

বৈশিষ্ট্যটুপলঅ্যারে
উপাদান প্রকারভিন্ন হতে পারেএকই হতে হবে
আকারস্থিরস্থির
অ্যাক্সেসবিন্দুর মাধ্যমে সূচক (যেমন, .0)বর্গাকার বন্ধনী (যেমন, [0])

নিজে চেষ্টা করে দেখুন

ব্যায়াম#rust.m1.l2.e1
প্রচেষ্টা: 0লোড হচ্ছে...

বয়স 30 (পূর্ণসংখ্যা) এবং স্কোর 95.5 (ফ্লোট) ধারণকারী একটি tuple নামের পরিসংখ্যান ঘোষণা করুন। এর পরে, সূচকটি ব্যবহার করে টিপলের দ্বিতীয় উপাদানটি সরাসরি অ্যাক্সেস করে স্ক্রিনে স্কোরটি প্রিন্ট করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

`লেট পরিসংখ্যান = (৩০, ৯৫.৫);` দিয়ে টিপল তৈরি করুন। `println!` ম্যাক্রোর ভিতরে `stats.1` ব্যবহার করে দ্বিতীয় উপাদানটি অ্যাক্সেস করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#rust.m1.l2.e2
প্রচেষ্টা: 0লোড হচ্ছে...

1 থেকে 5 পর্যন্ত পূর্ণসংখ্যার মান সম্বলিত একটি অ্যারে নামক সংখ্যা ঘোষণা করুন। প্রিন্টএলএন ব্যবহার করে অ্যারের তৃতীয় উপাদান (সূচক 2) স্ক্রিনে প্রিন্ট করুন!

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

`let numbers = [1, 2, 3, 4, 5];` দিয়ে অ্যারে ডিক্লেয়ার করুন এবং `[2]` দিয়ে ইন্ডেক্স করে তৃতীয় এলিমেন্ট অ্যাক্সেস করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#rust.m1.l2.e3
প্রচেষ্টা: 0লোড হচ্ছে...

টিপল দেওয়া `লেট পয়েন্ট = (10, 20);`, `x` এবং `y` নামের দুটি ভেরিয়েবলে মান বের করতে destructuring ব্যবহার করুন। তারপর, `x` এবং `y` এর যোগফল প্রিন্ট করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

সিনট্যাক্স ব্যবহার করুন `let (x, y) = point;` টিপলকে ধ্বংস করতে এবং তারপর `println!`-এ ভেরিয়েবল যোগ করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ