Vivasoft-logo

মৌলিক ডেটা টাইপ সমূহ

ডার্টে, প্রাথমিকভাবে তিনটি প্রকারের মৌলিক ডেটা টাইপ আছে। তারা হলো:

  1. বুলিয়ান (bool)
  2. সংখ্যা/নম্বার (পূর্ণসংখ্যা এবং ডাবল) (int, double, num)
  3. স্ট্রিং (String)

1 বুলিয়ান (bool)

বুলিয়ান মাত্র দুইটি মান প্রকাশ করতে পারে, সত্য বা মিথ্যা। একটি বুলিয়ান টাইপ ডিক্লেয়ার করতে আমরা লিখি:

bool b;
 

অসাইনমেন্ট সহ ডিক্লারেশন:

bool b = true;
bool c = false;
 

বুলিয়ান এক্সপ্রেশন প্রকাশ করতে আমরা বুলিয়ান অপারেটর ব্যবহার করতে পারি। প্রতিটি বুলিয়ান এক্সপ্রেশন শেষ পর্যন্ত একটি বুলিয়ান মান প্রকাশ করে. উদাহরণ স্বরূপ,

// OR: true || false = true
bool d = b || c;
// AND: true && false = false
bool e = b && c;
// NOT: !true = false
bool f = !b;
 

2 সংখ্যা

2.1 পূর্ণসংখ্যা (int) :

এগুলো পূর্ণ সংখ্যা। ডার্টে, int হল 8 বাইট (64 বিট)।

নেটিভ প্ল্যাটফর্মগুলিতে (মূলত, ওয়েব ছাড়া অন্য সমস্ত সমর্থিত প্ল্যাটফর্ম), এটি -263থেকে +263-1 পর্যন্ত মানগুলিকে সমর্থন করে, আরও বিশেষভাবে, -9223372036854775808 থেকে 9223372036854775807 পর্যন্ত। ওয়েব প্ল্যাটফর্মে, জাভাস্ক্রিপ্ট দ্বারা int-এর সংখ্যা প্রকাশ করা হয় (64-বিট ফ্লোটিং-পয়েন্টের মান যার কোনো ভগ্নাংশ নেই) এবং (-253) থেকে (253-1) হতে পারে।

একটি পূর্ণসংখ্যা (int-টাইপ) ডিক্লেয়ার করতে আমরা লিখি:

int x;
 

মনে রাখবেন, আপনাকে x ব্যবহার করার আগে তা আপনাকে ইনিসিয়ালাইজ করতে হবে।

অসাইনমেন্ট সহ ডিক্লারেশন:

int y = 10;
 

কিছু পরিস্থিতিতে, আপনাকে একটি int ভেরিয়েবলে হেক্সাডেসিমেল বা অক্টাল সংখ্যা রাখতে হবে। একটি সংখ্যাকে হেক্সাডেসিমেল হিসাবে উপস্থাপন করতে, সংখ্যার আগে 0x লিখুন। এটি বিশেষভাবে হেক্স কালার কোড প্রকাশ করতে ব্যবহৃত হয়।

// a hexadecimal - starts with 0x
int h = 0xffa0a0a0;
 

কিছু ভাষায়, অক্টাল সংখ্যাকে উপস্থাপন করার জন্য সংখ্যার আগে 0 রাখতে হয়। দুর্ভাগ্যবশত এটি ডার্টে উপলব্ধ নয়। কিন্তু আপনি এটি অর্জন করতে কিছু অন্তর্নির্মিত পদ্ধতি ব্যবহার করতে পারেন।

নিম্নলিখিত কোড 123 স্ট্রিংটিকে একটি অক্টাল সংখ্যা হিসাবে পার্স করে এবং ফলাফলটিকে ভেরিয়েবল o -এ সঞ্চয় করে। আমরা যদি রেডিক্স 8(eight) ছাড়া অন্য কিছু রাখি, উদাহরণস্বরূপ 16, তাহলে স্ট্রিং eff123 হেক্সাডেসিমেল সংখ্যা হিসেবে পার্স হবে।

// '123' is parsed as an octal number and assigned to 'o'
int o = int.parse('123', radix: 8);

// 'eff123' is parsed as a hexadecimal number and assigned to 'h'.
// DO NOT prefix the number string with '0x' if using this method.
int h = int.parse('eff123', radix: 16);

// ERROR - '1234' is being parsed to binary,
// but 2, 3, 4 are not binary digits. This throws an exception.
int b = int.parse('1234', radix: 2);
 
2.2 ডাবল (double):

IEEE 754 স্ট্যান্ডার্ড দ্বারা নির্দিষ্ট করা 64-বিট ফ্লোটিং-পয়েন্ট(ভগ্নাংশযুক্ত) সংখ্যা। মূলত এটি 1.5, 3.2 ইত্যাদি যেকোনো ভগ্নাংশযুক্ত সংখ্যার প্রকাশ করতে ব্যবহৃত হয়। সমর্থিত পরিসর হল 4.9-324 থেকে 1.8308.

একটি ডাবল (double-টাইপ) ডিক্লেয়ার করতে আমরা লিখি:

double x;
 

মনে রাখবেন, আপনাকে x ব্যবহার করার আগে তা আপনাকে ইনিসিয়ালাইজ করতে হবে।

অসাইনমেন্ট সহ ডিক্লারেশন:

double y = 1.5;
 

এটা মনে রাখা গুরুত্বপূর্ণ যে ডাবল একটি ফ্লোটিং-পয়েন্ট (ভগ্নাংশযুক্ত) টাইপ, তাই এর সীমিত নির্ভুলতা রয়েছে। এর মানে হল যে, এর মাধ্যমে খুব বড় বা খুব ছোট সংখ্যাগুলি সঠিকভাবে উপস্থাপন করা যাবে না, এবং অপারেশন করার সময় রাউন্ডিং ত্রুটি হতে পারে। অতএব, উচ্চ নির্ভুলতা প্রয়োজন এমন গণনার সাথে কাজ করার সময়, আপনাকে বিকল্প পন্থা বিবেচনা করতে হতে পারে।

2.3 সংখ্যা (num):

num টাইপ আসলে int এবং double উভয়েরই সুপার-ক্লাস। সুতরাং, এটি পূর্ণ সংখ্যা এবং ভগ্নাংশযুক্ত সংখ্যা উভয়কেই সমর্থন করে।

একটি num-টাইপ ডেটা ডিক্লেয়ার করতে আমরা লিখি:

num n;
 

মনে রাখবেন, আপনাকে x ব্যবহার করার আগে তা আপনাকে ইনিসিয়ালাইজ করতে হবে।

অসাইনমেন্ট সহ ডিক্লারেশন:

// whole
num n1 = 1;

// fractional
num n2 = 1.5;
 
2.4 রূপান্তর (Conversion) এবং অন্যান্য দরকারী পদ্ধতি:

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

double d1 = 1.5;
    
// getting integer part of a double type
int i1 = d.toInt();

// converting an int to double
double d2 = i1.toDouble();
 

অন্যান্য অনেক ব্যবহারের ক্ষেত্রে অন্যান্য দরকারী পদ্ধতি রয়েছে। উদাহরণস্বরূপ, ফ্লোরিং, সীলিং, পরম মান পাওয়া ইত্যাদি। সেগুলি সম্পর্কে আরও জানতে অন্বেষণ করুন৷

3 স্ট্রিং (String):

একটি ডার্ট স্ট্রিং (স্ট্রিং অবজেক্ট) UTF-16 কোড বা অক্ষরগুলির একটি ক্রম ধারণ করে।

আপনি একটি স্ট্রিং তৈরি করতে একক বা ডবল উদ্ধৃতি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ,

String s1 = 'This is a String';
String s2 = "This is a String too";
 

আপনি ${expression} ব্যবহার করে একটি স্ট্রিংয়ের ভিতরে একটি এক্সপ্রেশনের মান রাখতে পারেন। একে বলা হয় স্ট্রিং এর ইন্টারপোলেশন। উদাহরণ স্বরূপ,

String s3 = "Sum of 2 and 3 is ${2 + 3}";
 

এক্সিকিউশনের পর s3 ভেরিয়েবল মান ধরে রাখবে: Sum of 2 and 3 is 5

যদি এক্সপ্রেশনটি একটি ভেরিয়েবল হয়, আপনি দ্বিতীয় বন্ধনী বাদ দিতে পারেন।

int sum = 2+3;
String s4 = "Sum of 2 and 3 is $sum";
 

এর ফলে s3 এর মত একই স্ট্রিং মান আসবে, অর্থাৎ Sum of 2 and 3 is 5

নাল (null)

নাল আসলে একটি টাইপ নয়, বরং, আপনি এটিকে যেকোনো ডাটা টাইপের একটি খালি স্থান হিসেবে বিবেচনা করতে পারেন। এ পর্যন্ত আমরা এটি বিবেচনা করিনি। কিন্তু এটি যেকোনো প্রোগ্রামিং ভাষার একটি গুরুত্বপূর্ণ অংশ।

একটি নালেবল (nullable / নাল-সমর্থিত) টাইপ ঘোষণা করতে, আমরা টাইপ নামের শেষে একটি ? রাখি। উদাহরণস্বরূপ, একটি নাল সমর্থিত int ঘোষণা করতে, আমরা লিখি:

int? i;
 

একইভাবে, অন্য যেকোন টাইপ-এর জন্য, যা আমরা আলোচনা করিনি, এটি একই রকম। উদাহরণ স্বরূপ:

int? i;
double? d;
String? s;
 

একটি গুরুত্বপূর্ণ পার্থক্য হল, আমরা এটি ব্যবহার করার আগে আমাদের এটি ইনিশিয়ালাইজ করার দরকার নেই। নন-নালেবল টাইপের ক্ষেত্রে, আমরা যদি ইনিশিয়ালাইজ করার আগে এটি ব্যবহার করার চেষ্টা করি তবে আমরা একটি কম্পাইল টাইম এক্সসেপশন পেতে পারি, তবে নালেবল টাইপের ক্ষেত্রে এটি গ্রহণযোগ্য। কিন্তু, আপনাকে সতর্ক থাকতে হবে, কারণ আপনি যদি এটি ব্যবহার করার চেষ্টা করেন বা ইনিশিয়ালাইজ করার আগে এর সদস্যগুলিকে অ্যাক্সেস করার চেষ্টা করেন তবে এটি একটি এক্সসেপশন তৈরি করতে পারে। ব্যবহার করার আগে আপনাকে এটি নাল কি না তা পরীক্ষা করতে হবে এবং যথাযথ ব্যবস্থা নিতে হবে। এটি কিছু ভাষার এক্সসেপশন-এর সবচেয়ে সাধারণ উৎস, বিশেষ করে Java-তে।