Groovy তে Java এর মতোই প্রিমিটিভ এবং অবজেক্ট ডেটা টাইপ রয়েছে। Java তে প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এদের সাথে সম্পর্কিত কোনো অবজেক্ট থাকে না। তবে Groovy তে প্রিমিটিভ টাইপগুলি স্বয়ংক্রিয়ভাবে অবজেক্ট টাইপে কনভার্ট হয়, যা অটো-বক্সিং নামে পরিচিত।
Groovy তে ডেটা টাইপগুলি দুটি প্রধান ক্যাটাগরিতে ভাগ করা যায়:
প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এগুলি সাধারণত ছোট আকারের এবং কম মেমোরি ব্যবহার করে। Groovy তে প্রিমিটিভ টাইপগুলো Java এর প্রিমিটিভ টাইপগুলির মতোই, যেমন:
ডেটা টাইপ | ব্যাখ্যা | উদাহরণ |
---|---|---|
byte | 8-বিট সাইনড ইন্টিজার | byte b = 1 |
short | 16-বিট সাইনড ইন্টিজার | short s = 10 |
int | 32-বিট সাইনড ইন্টিজার | int i = 100 |
long | 64-বিট সাইনড ইন্টিজার | long l = 1000L |
float | 32-বিট IEEE 754 ফ্লোটিং পয়েন্ট | float f = 1.23F |
double | 64-বিট IEEE 754 ফ্লোটিং পয়েন্ট | double d = 2.34 |
char | 16-বিট Unicode ক্যারেক্টার | char c = 'A' |
boolean | true অথবা false মান ধারণ করে | boolean b = true |
Groovy তে এই প্রিমিটিভ ডেটা টাইপগুলো ব্যবহার করা গেলেও, এগুলি সাধারণত Object ডেটা টাইপে রূপান্তরিত হয়।
Groovy তে প্রতিটি প্রিমিটিভ টাইপের সাথে সংশ্লিষ্ট অবজেক্ট টাইপ রয়েছে। এই অবজেক্ট টাইপগুলি Java এর Wrapper classes এর সাথে সাদৃশ্যপূর্ণ। উদাহরণস্বরূপ, int
এর অবজেক্ট টাইপ Integer
এবং boolean
এর অবজেক্ট টাইপ Boolean
। এই অবজেক্ট টাইপগুলোর সাহায্যে প্রিমিটিভ টাইপের উপর বিভিন্ন মেথড ব্যবহার করা যায়।
Primitive Type | Object Type (Wrapper Class) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
উদাহরণস্বরূপ:
int num = 10 // Primitive type
Integer numObj = num // Autoboxing to Object type
println numObj.class // Output: class java.lang.Integer
Groovy তে প্রিমিটিভ টাইপ অটোমেটিক্যালি অবজেক্ট টাইপে কনভার্ট হয় যখন প্রয়োজন হয় এবং এটিকে Autoboxing বলে। আবার অবজেক্ট টাইপকে প্রিমিটিভ টাইপেও পরিবর্তন করা যায় এবং এটি Unboxing নামে পরিচিত।
Groovy তে Autoboxing এবং Unboxing স্বয়ংক্রিয়ভাবে ঘটে। যখন প্রিমিটিভ টাইপের একটি ভেরিয়েবলকে অবজেক্ট টাইপে কনভার্ট করতে হয়, তখন Groovy এটি স্বয়ংক্রিয়ভাবে করে থাকে। একইভাবে, অবজেক্ট টাইপকে প্রিমিটিভ টাইপে রূপান্তরিত করাও স্বয়ংক্রিয়ভাবে করা হয়।
int num = 100 // Primitive type
Integer objNum = num // Autoboxing
int newNum = objNum // Unboxing
println newNum // Output: 100
পার্থক্য: Autoboxing এবং Unboxing এর মাধ্যমে Groovy তে প্রিমিটিভ এবং অবজেক্ট টাইপ একে অপরের সাথে মিশ্রিতভাবে ব্যবহার করা যায়, যা কোডিংকে আরও সহজ এবং কার্যকর করে তোলে।
Groovy তে String
একটি বিশেষ ধরনের Object ডেটা টাইপ। এটি Immutable অর্থাৎ, এর মান পরিবর্তন করা যায় না। String
এ স্ট্রিং ইন্টারপোলেশন ব্যবহার করা যায়, যা কোডিংকে আরও সুবিধাজনক করে তোলে।
String name = "Groovy"
println "Hello, $name!" // Output: Hello, Groovy!
Groovy তে স্ট্রিং এর ম্যানিপুলেশন সহজ এবং এটি ডায়নামিক ভাবে স্ট্রিং এর মেথড ব্যবহার করতে পারে।
def
ব্যবহারGroovy তে def
ব্যবহার করে ভেরিয়েবল ডিক্লার করতে গেলে এটি ডাইনামিক টাইপ ধারণ করে, অর্থাৎ যে কোনো টাইপের মান সংরক্ষণ করতে পারে।
def age = 30 // Integer type
age = "Thirty" // String type
println age // Output: Thirty
উল্লেখযোগ্য দিক: Java তে ভেরিয়েবল টাইপ একবার নির্ধারিত হলে পরিবর্তন করা যায় না, কিন্তু Groovy তে def
ব্যবহার করলে টাইপ পরিবর্তন করা সম্ভব।
Groovy তে Primitive এবং Object টাইপগুলির মিশ্রণ Java থেকে সহজ এবং ব্যবহারবান্ধব। প্রিমিটিভ ডেটা টাইপের উপর ভিত্তি করে Object টাইপগুলি ম্যানেজ করা সহজ এবং Dynamic Typing এবং Autoboxing সুবিধাগুলি প্রোগ্রামিংকে আরও নমনীয় করে তোলে।
common.read_more