Scalar Data Types (স্কেলার ডেটা টাইপস)
স্কেলার ডেটা টাইপগুলি এমন ডেটা টাইপ যা একক মান ধারণ করতে পারে। অর্থাৎ, এগুলো একক মান বা একটি মাত্র মানের উপস্থাপন করে। রাস্টে স্কেলার ডেটা টাইপগুলি হলো:
১. Integer Types (পূর্ণসংখ্যা টাইপ)
রাস্টে পূর্ণসংখ্যা টাইপগুলি হলো signed এবং unsigned, যেগুলি ভেরিয়েবলগুলোতে পূর্ণসংখ্যা ধারণ করতে সাহায্য করে। প্রতিটি টাইপ নির্দিষ্ট সাইজের (বিটস) হয়ে থাকে।
- signed integers: সাইনযুক্ত পূর্ণসংখ্যা ধারণ করে, যেগুলিতে ধনাত্মক এবং ঋণাত্মক উভয় মান থাকতে পারে।
i8,i16,i32,i64,i128(সর্বোচ্চ 128-বিট পর্যন্ত)
- unsigned integers: সাইনবিহীন পূর্ণসংখ্যা, যার মান সবসময় ধনাত্মক।
u8,u16,u32,u64,u128
উদাহরণ:
let x: i32 = 100; // signed integer
let y: u32 = 200; // unsigned integer২. Floating-point Types (ফ্লোটিং পয়েন্ট টাইপ)
ফ্লোটিং পয়েন্ট টাইপগুলি দশমিক সংখ্যাগুলি ধারণ করে, যেমন 3.14 বা -2.5। রাস্টে দুইটি ফ্লোটিং পয়েন্ট টাইপ আছে:
- f32: 32-বিট ফ্লোটিং পয়েন্ট সংখ্যা
- f64: 64-বিট ফ্লোটিং পয়েন্ট সংখ্যা (ডিফল্ট টাইপ)
উদাহরণ:
let a: f32 = 3.14; // 32-bit floating point number
let b: f64 = 3.14159; // 64-bit floating point number৩. Boolean Type (বুলিয়ান টাইপ)
বুলিয়ান টাইপ শুধু দুটি মান ধারণ করতে পারে, true অথবা false। এটি শর্তমূলক পরীক্ষায় ব্যবহৃত হয়।
bool: একটি বুলিয়ান মান, যার মানtrueবাfalse।
উদাহরণ:
let is_active: bool = true;
let is_completed: bool = false;৪. Character Type (অক্ষর টাইপ)
অক্ষর টাইপটি একটি একক অক্ষর বা চিহ্ন ধারণ করে। এটি সাধারণত একটি ইউনিকোড স্কেলেড অক্ষর হিসেবে কাজ করে।
char: একটি একক অক্ষর ধারণ করে যা ইউনিকোডের মাধ্যমে প্রতিনিধিত্ব করা হয়।
উদাহরণ:
let c: char = 'A'; // character type
let symbol: char = '#'; // another characterCompound Data Types (কম্পাউন্ড ডেটা টাইপস)
কম্পাউন্ড ডেটা টাইপগুলি একাধিক মান ধারণ করতে সক্ষম। এগুলি একাধিক ডেটা টাইপ একত্রে ধারণ করতে পারে এবং গঠনমূলকভাবে ডেটাকে একত্রে রাখে। রাস্টে দুটি প্রধান কম্পাউন্ড ডেটা টাইপ রয়েছে:
১. Tuple (টিউপল)
টিউপল হল একাধিক মান ধারণকারী একটি কম্পাউন্ড ডেটা টাইপ, যেটি বিভিন্ন ধরনের ডেটা টাইপের মান রাখতে পারে। টিউপলের মধ্যে ধার্য করা মানগুলো অপরিবর্তনীয় (immutable) এবং প্রতিটি উপাদান আলাদা টাইপের হতে পারে।
উদাহরণ:
let tup: (i32, f64, char) = (500, 6.4, 'A'); // টিউপলটিউপলের উপাদানগুলোকে অ্যাক্সেস করা যেতে পারে ইনডেক্স ব্যবহার করে:
let (x, y, z) = tup; // Destructuring the tuple
println!("x: {}, y: {}, z: {}", x, y, z); // Accessing elements২. Array (অ্যারে)
অ্যারে হল এক ধরনের কম্পাউন্ড ডেটা টাইপ যা একটি নির্দিষ্ট সাইজের সমজাতীয় (homogeneous) ডেটা ধারণ করে। অ্যারেগুলোতে সব মান এক ধরনের ডেটা টাইপের হতে হয় এবং সেগুলো একটি নির্দিষ্ট সংখ্যক উপাদান ধারণ করতে পারে।
উদাহরণ:
let arr: [i32; 5] = [1, 2, 3, 4, 5]; // অ্যারে
println!("First element: {}", arr[0]); // অ্যারে উপাদান অ্যাক্সেসঅ্যারে ও স্লাইসের মধ্যে প্রধান পার্থক্য হলো অ্যারেগুলির সাইজ নির্দিষ্ট থাকে, কিন্তু স্লাইসগুলির সাইজ পরিবর্তনশীল হতে পারে।
সারাংশ
স্কেলার ডেটা টাইপ একক মান ধারণ করে এবং এগুলো সাধারনত গাণিতিক বা লজিক্যাল মান হয়। এর মধ্যে রয়েছে পূর্ণসংখ্যা (integer), ফ্লোটিং পয়েন্ট (floating-point), বুলিয়ান (boolean) এবং **অক্ষর (character)**।
কম্পাউন্ড ডেটা টাইপ একাধিক মান ধারণ করে এবং এতে একাধিক ধরনের ডেটা টাইপ থাকতে পারে, যেমন টিউপল (tuple), যা বিভিন্ন ডেটা টাইপের উপাদান ধারণ করে, এবং অ্যারে (array), যা এক ধরনের ডেটা টাইপের উপাদান ধারণ করে।
Read more