স্কিপ করে মূল কন্টেন্ট এ যান

ডেটা টাইপ

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

ডেটা টাইপ স্পষ্টভাবে নির্দিষ্ট করা ওয়েভের মূল নকশা দর্শনের মধ্যে একটি। ওয়েভ হল সম্পূর্ণ শক্ত টাইপ সিস্টেম। সব var/fun ঘোষণা এবং ভেরিয়েবল প্রারম্ভের জন্য স্পষ্ট টাইপ প্রয়োজন হয় এবং প্রসঙ্গ ভিত্তিক টাইপ ধারণা সমর্থিত নয়। এ কারণে var x = 1; এর মতো টাইপ ছাড়া কম্পাইল ব্যর্থ হবে। এর মাধ্যমে কোডের উদ্দেশ্য স্পষ্টভাবে ব্যক্ত করা যায়, কম্পাইলের সময় ত্রুটি দ্রুত সনাক্ত করা যায় এবং কার্যকর মেমরি ব্যবহার এবং সুষম নির্বাহ নিশ্চিত করা যায়।


পূর্ণসংখ্যা টাইপ

পূর্ণসংখ্যা টাইপ পূর্ণসংখ্যার মান সংরক্ষণ করতে ব্যবহৃত হয়। Wave এ সাধারণত i32 (স্বাক্ষরিত 32-বিট পূর্ণসংখ্যা) এবং u32 (স্বাক্ষরবিহীন 32-বিট পূর্ণসংখ্যা) ব্যবহৃত হয়, তবে প্রয়োজনে খুব সূক্ষ্মভাবে পূর্ণসংখ্যার বিট আকার নির্ধারণ করা যায়।

স্বাক্ষরিত পূর্ণসংখ্যা টাইপ i8 থেকে i1024 পর্যন্ত প্রদান করা হয়, এবং স্বাক্ষরবিহীন পূর্ণসংখ্যা টাইপ u8 থেকে u1024 পর্যন্ত ব্যবহার করা যায়। এটি সাধারণ গণনা থেকে বৃহদাকার পূর্ণসংখ্যার অপারেশন, ক্রিপ্টোগ্রাফিক প্রসেসিং, নিম্ন-স্তরের সিস্টেম প্রোগ্রামিং পর্যন্ত বিস্তৃত চাহিদা পূরণ করতে সক্ষম করে।

নীচে পূর্ণসংখ্যা টাইপ ব্যবহারের একটি সহজ উদাহরণ দেওয়া হলো।

var a: i32 = 100;
var b: u32 = 200;

ফ্লোটিং-পয়েন্ট টাইপ

ফ্লোটিং-পয়েন্ট টাইপ পারমানবিক মান সংরক্ষণ করতে ব্যবহৃত হয়। Wave এ সাধারণত ব্যবহৃত ভাসমান বিন্দু টাইপ f32, যদি বেশি যথার্থতার প্রয়োজন হয় তবে আরও বড় আকারের টাইপ বেছে নেওয়া যেতে পারে।

Wave f32 থেকে f128 পর্যন্ত ভাসমান বিন্দু টাইপ প্রদান করে, যাতে ব্যবহারকারী গণনার যথার্থতা এবং কর্মক্ষমতার মধ্যে সরাসরি নির্বাচন করতে পারেন। এটি সাধারণ সংখ্যাগত গণনা থেকে যথাযথ বৈজ্ঞানিক গণনা পর্যন্ত বিভিন্ন প্রয়োজনে ভাসমান বিন্দু অপারেশন প্রক্রিয়া করতে দেয়।

নীচে ভাসমান বিন্দু টাইপ ব্যবহারের উদাহরণ দেওয়া হলো।

var pi: f32 = 3.14;
var e: f64 = 2.71828;

স্ট্রিং টাইপ

স্ট্রিং টাইপ টেক্সট ডেটা পরিচালনার জন্য ব্যবহৃত হয়। Wave এ str কীওয়ার্ড ব্যবহার করে স্ট্রিং ঘোষণা করা হয় এবং স্ট্রিং লিটারেলকে ডাবল-কোটস (") দিয়ে মোড়ানো হয়।

স্ট্রিং প্রোগ্রামে বার্তা আউটপুট, ব্যবহারকারীর ইনপুট প্রক্রিয়াকরণ, এবং টেক্সট-ভিত্তিক ডেটা প্রক্রিয়াকরণের জন্য ব্যাপকভাবে ব্যবহৃত হয়।

নীচে স্ট্রিং টাইপের একটি মৌলিক ব্যবহার দেখানো হয়েছে।

var text: str = "Hello Wave";

বুলিয়ান টাইপ

বুলিয়ান টাইপ সত্য (True) বা মিথ্যা (False) মান প্রকাশ করার জন্য একটি ডেটা টাইপ। Wave এ bool টাইপ ব্যবহৃত হয় এবং মান true বা false হিসেব নির্ধারিত হয়।

বুলিয়ান টাইপ শর্ত এবং লুপ স্টেটমেন্টে একটি মূল ভূমিকা পালন করে এবং প্রোগ্রামের ফ্লো নিয়ন্ত্রণে ব্যবহৃত হয়।

var isActive: bool = true;
var isAvailable: bool = true;

অক্ষর টাইপ

অক্ষর টাইপ একটি একক অক্ষর সংরক্ষণ করতে ব্যবহৃত হয়। char কীওয়ার্ড ব্যবহার করে ঘোষণা করা হয় এবং এতে একটি একক অক্ষর ধারন করতে পারে।

অক্ষর লিটারেলগুলি একক উদ্ধৃতি(') দ্বারা আবৃত হয়।

var letter: char = 'A';

বাইট টাইপ

বাইট টাইপ 1-বাইট আকারের ডেটা সংরক্ষণে ব্যবহৃত হয়। এই টাইপটি প্রধানত বাইনারি ডেটা প্রক্রিয়াকরণ, ফাইল ইনপুট আউটপুট এবং নেটওয়ার্ক প্রোগ্রামিংয়ের মতো নিম্ন স্তরের তথ্য প্রক্রিয়াকরণের জন্য উপযোগী।

Wave এ, byte কীওয়ার্ড ব্যবহার করে বাইট টাইপ ঘোষণা করা হয়।

var byteData: byte = 0xFF;

পয়েন্টার টাইপ

পয়েন্টার টাইপ মেমরির ঠিকানা সরাসরি উল্লেখ করতে ব্যবহৃত হয়। Wave এ, ptr<T> আকারে পয়েন্টার টাইপ ঘোষণা করা হয়।

পয়েন্টারগুলি এসেম্বলি ভাষায় বা উন্নত কর্মক্ষমতা প্রয়োজন এমন পরিস্থিতিতে ব্যবহৃত হয়, যেমন সিস্টেম প্রোগ্রামিং।

var ptr: ptr<T> = &someVariable;

null লিটারেল

Wave এ null একটি বৈধ লিটারেল।

  • null একটি পরিচয় নয়। (var null = ... আকার বৈধ নয়)
  • null শুধুমাত্র ptr<T> টাইপে বরাদ্দ করা যায়।
var p: ptr<i32> = null;  // OK

// var n: i32 = null; // ERROR
// var b: bool = null; // ERROR

অ্যারে টাইপ

অ্যারে টাইপ সমজাতীয় ডেটা টাইপের একাধিক মান সারিবদ্ধভাবে সংরক্ষণ করতে ব্যবহৃত হয়। Wave এ, array<টাইপ, আকার> আকারে অ্যারে ঘোষণা করা হয় এবং অ্যারের আকার স্পষ্টভাবে কম্পাইল সময় নির্ধারণ করা হয়।

এটি মেমোরি স্ট্রাকচার সুস্পষ্ট করে তোলে, এবং নির্ভরযোগ্য অ্যাক্সেস সম্ভব করে।

var numbers: array<i32, 5> = [1, 2, 3, 4, 5];

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