common.skill

ডেটা টাইপস এবং ভেরিয়েবলস (Data Types and Variables in Groovy)

Computer Programming - গ্রুভি (Groovy)
181
181

ডেটা টাইপস এবং ভেরিয়েবলস (Data Types and Variables in Groovy)

Groovy একটি ডাইনামিক টাইপিং ভাষা, যার মানে হলো ভেরিয়েবলগুলির জন্য টাইপের ঘোষণা করার প্রয়োজন নেই। Groovy নিজেই রানটাইমে ভেরিয়েবলের টাইপ নির্ধারণ করে। তবে, Groovy এর বিভিন্ন ধরনের ডেটা টাইপ এবং ভেরিয়েবল সম্পর্কে জানাটা গুরুত্বপূর্ণ।


1. Groovy তে ডেটা টাইপস

Groovy তে কিছু মৌলিক ডেটা টাইপ রয়েছে, তবে Groovy Java এর মতো অন্যান্য ডেটা টাইপের সাথেও কাজ করতে পারে। এখানে Groovy তে ব্যবহৃত প্রধান ডেটা টাইপগুলোর কিছু উদাহরণ দেওয়া হলো:

1.1 স্ট্রিং (String)

স্ট্রিং হল অক্ষরের একটি সিকোয়েন্স। Groovy তে স্ট্রিং লিটারেল ডাবল কোটস (" ") দিয়ে সংজ্ঞায়িত করা হয়।

def greeting = "Hello, Groovy!"
println greeting  // Output: Hello, Groovy!

এছাড়া, স্ট্রিং ইন্টারপোলেশন Groovy তে খুব সহজ:

def name = "Groovy"
def message = "Welcome to $name!"
println message  // Output: Welcome to Groovy!

1.2 ইন্টিজার (Integer)

Groovy তে পূর্ণসংখ্যা বা ইন্টিজার ডেটা টাইপের জন্য int বা Integer ব্যবহার করা হয়। Groovy ডাইনামিক টাইপিং ব্যবহার করে, তাই int টাইপের ভেরিয়েবল ডিক্লেয়ার করার সময় টাইপ উল্লেখ করার প্রয়োজন হয় না।

def number = 10
println number  // Output: 10

1.3 ফ্লোট (Float)

ফ্লোট হল দশমিক সংখ্যা (যেমন 3.14)। Groovy তে ফ্লোট টাইপের জন্য float বা double ব্যবহার করা হয়।

def price = 19.99
println price  // Output: 19.99

1.4 বুলিয়ান (Boolean)

Groovy তে boolean টাইপ শুধুমাত্র দুইটি মান নিতে পারে: true বা false। এটি সাধারণত লজিক্যাল পরীক্ষার জন্য ব্যবহৃত হয়।

def isActive = true
println isActive  // Output: true

1.5 অবজেক্ট (Object)

Groovy তে Object হল সর্বজনীন ডেটা টাইপ, এবং এটি Java এর Object ক্লাসের মতো কাজ করে। Object টাইপের মাধ্যমে আপনি যেকোনো ডেটা টাইপ সংরক্ষণ করতে পারেন।

def obj = new Date()  // Date অবজেক্ট
println obj  // Output: Current date and time

1.6 অ্যারেট (Array)

Groovy তে অ্যারের জন্য সাধারণভাবে Array ক্লাস ব্যবহৃত হয়। Groovy তে, আপনি একটি অ্যারে তৈরি করতে পারেন এবং তার উপাদানগুলির ধরন নির্ধারণ না করেও সেগুলি ব্যবহার করতে পারেন।

def numbers = [1, 2, 3, 4, 5]
println numbers  // Output: [1, 2, 3, 4, 5]

1.7 ম্যাপ (Map)

Groovy তে একটি ম্যাপ একটি কীগুলির সেট যা মানের সাথে যুক্ত থাকে। একটি ম্যাপ পেয়ার হিসেবে কীগুলির মান সংরক্ষণ করে। Groovy তে ম্যাপ [:] দিয়ে ডিক্লেয়ার করা হয়।

def person = [name: "John", age: 30]
println person['name']  // Output: John

1.8 সেট (Set)

Groovy তে সেট একটি কালেকশন টাইপ যা শুধুমাত্র অনন্য উপাদান ধারণ করে। এটি ডুপ্লিকেট উপাদান রাখে না।

def set = [1, 2, 3, 3, 4] as Set
println set  // Output: [1, 2, 3, 4]

2. Groovy তে ভেরিয়েবল ডিক্লেয়ারেশন

Groovy তে ভেরিয়েবল ডিক্লেয়ার করার জন্য def কীওয়ার্ড ব্যবহার করা হয়। এটি ডাইনামিক টাইপিংয়ের মাধ্যমে ভেরিয়েবলের টাইপ নির্ধারণ করে।

2.1 ভেরিয়েবল ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন

Groovy তে একটি ভেরিয়েবল ডিক্লেয়ার করতে শুধু def কীওয়ার্ড এবং ভেরিয়েবলের নাম ব্যবহার করা হয়। ভেরিয়েবলটি ইনিশিয়ালাইজ করার সময় তা স্বয়ংক্রিয়ভাবে তার টাইপ নির্ধারণ করে।

def name = "John"
def age = 30
def height = 5.9

2.2 টাইপ ডিক্লেয়ারেশন

যদিও Groovy ডাইনামিক টাইপিং ভাষা, আপনি চাইলে টাইপ নির্ধারণ করতে পারেন। যেমন, String বা int টাইপ ব্যবহার করা।

String name = "John"
int age = 30

2.3 কনস্ট্যান্ট ভেরিয়েবল (Constant Variables)

Groovy তে কনস্ট্যান্ট ভেরিয়েবল তৈরি করতে final কীওয়ার্ড ব্যবহার করা হয়। একবার কনস্ট্যান্ট ভেরিয়েবল ইনিশিয়ালাইজ হলে, আপনি এর মান পরিবর্তন করতে পারবেন না।

final int MAX_VALUE = 100

2.4 গ্লোবাল ভেরিয়েবল (Global Variables)

Groovy তে গ্লোবাল ভেরিয়েবল সেট করা যেতে পারে, তবে এটি সাধারণত স্ক্রিপ্ট বা মেথডের বাইরে থাকে এবং কোডের সকল স্থানে এক্সেস করা যায়।

def globalVar = "I am global"
def printGlobalVar() {
    println globalVar  // Accessing global variable inside a method
}
printGlobalVar()  // Output: I am global

3. ভেরিয়েবল এবং স্কোপ

Groovy তে ভেরিয়েবলগুলি স্কোপে নির্ভর করে। স্কোপ হলো যেখানে একটি ভেরিয়েবল বা ফাংশন অ্যাক্সেসযোগ্য। Groovy তে ভেরিয়েবলগুলির প্রধান স্কোপ হচ্ছে:

  • লোকার স্কোপ (Local Scope): যেকোনো মেথড বা ব্লক ভিতরে ডিফাইন করা ভেরিয়েবলগুলি শুধু ওই মেথড বা ব্লকের মধ্যে এক্সেস করা যায়।
  • গ্লোবাল স্কোপ (Global Scope): যেকোনো স্ক্রিপ্ট বা প্রোগ্রামের বাইরে ডিফাইন করা ভেরিয়েবলগুলি গ্লোবাল স্কোপে থাকে এবং কোডের যেকোনো স্থানে এক্সেস করা যায়।

4. ভেরিয়েবল ইনিশিয়ালাইজেশন এবং ডিফল্ট মান

Groovy তে যদি আপনি একটি ভেরিয়েবল ডিক্লেয়ার করেন তবে সেটি একটি ডিফল্ট মান গ্রহণ করবে (যেমন null বা 0):

def number
println number  // Output: null

def count = 10
println count  // Output: 10

সারসংক্ষেপ

Groovy তে ডেটা টাইপ এবং ভেরিয়েবল ডিক্লেয়ারেশন Java এর তুলনায় অনেক সহজ। Groovy ডাইনামিক টাইপিং ব্যবহার করে, যা আপনাকে টাইপ উল্লেখ না করেও ভেরিয়েবল ব্যবহার করতে দেয়। Groovy তে স্ট্রিং, ইন্টিজার, ফ্লোট, বুলিয়ান, ম্যাপ, সেট, এবং অ্যারের মতো প্রাথমিক ডেটা টাইপ ব্যবহার করা হয়। Groovy ভেরিয়েবলগুলো সাধারণত def দিয়ে ডিক্লেয়ার করা হয়, এবং এটি ডাইনামিকভাবে টাইপ নির্ধারণ করে। Groovy এর সহজ সিনট্যাক্স এবং নমনীয়তা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং কার্যকরী করে তোলে।

common.content_added_by

Primitive এবং Object ডেটা টাইপস

177
177

Groovy তে Primitive এবং Object ডেটা টাইপস

Groovy তে Java এর মতোই প্রিমিটিভ এবং অবজেক্ট ডেটা টাইপ রয়েছে। Java তে প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এদের সাথে সম্পর্কিত কোনো অবজেক্ট থাকে না। তবে Groovy তে প্রিমিটিভ টাইপগুলি স্বয়ংক্রিয়ভাবে অবজেক্ট টাইপে কনভার্ট হয়, যা অটো-বক্সিং নামে পরিচিত।

Groovy তে ডেটা টাইপগুলি দুটি প্রধান ক্যাটাগরিতে ভাগ করা যায়:

  1. Primitive Data Types
  2. Object Data Types

1. Primitive Data Types

প্রিমিটিভ ডেটা টাইপগুলি সরাসরি মেমোরিতে স্টোর হয় এবং এগুলি সাধারণত ছোট আকারের এবং কম মেমোরি ব্যবহার করে। Groovy তে প্রিমিটিভ টাইপগুলো Java এর প্রিমিটিভ টাইপগুলির মতোই, যেমন:

ডেটা টাইপব্যাখ্যাউদাহরণ
byte8-বিট সাইনড ইন্টিজারbyte b = 1
short16-বিট সাইনড ইন্টিজারshort s = 10
int32-বিট সাইনড ইন্টিজারint i = 100
long64-বিট সাইনড ইন্টিজারlong l = 1000L
float32-বিট IEEE 754 ফ্লোটিং পয়েন্টfloat f = 1.23F
double64-বিট IEEE 754 ফ্লোটিং পয়েন্টdouble d = 2.34
char16-বিট Unicode ক্যারেক্টারchar c = 'A'
booleantrue অথবা false মান ধারণ করেboolean b = true

Groovy তে এই প্রিমিটিভ ডেটা টাইপগুলো ব্যবহার করা গেলেও, এগুলি সাধারণত Object ডেটা টাইপে রূপান্তরিত হয়।


2. Object Data Types

Groovy তে প্রতিটি প্রিমিটিভ টাইপের সাথে সংশ্লিষ্ট অবজেক্ট টাইপ রয়েছে। এই অবজেক্ট টাইপগুলি Java এর Wrapper classes এর সাথে সাদৃশ্যপূর্ণ। উদাহরণস্বরূপ, int এর অবজেক্ট টাইপ Integer এবং boolean এর অবজেক্ট টাইপ Boolean। এই অবজেক্ট টাইপগুলোর সাহায্যে প্রিমিটিভ টাইপের উপর বিভিন্ন মেথড ব্যবহার করা যায়।

Primitive TypeObject Type (Wrapper Class)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

উদাহরণস্বরূপ:

int num = 10          // Primitive type
Integer numObj = num  // Autoboxing to Object type
println numObj.class  // Output: class java.lang.Integer

Groovy তে প্রিমিটিভ টাইপ অটোমেটিক্যালি অবজেক্ট টাইপে কনভার্ট হয় যখন প্রয়োজন হয় এবং এটিকে Autoboxing বলে। আবার অবজেক্ট টাইপকে প্রিমিটিভ টাইপেও পরিবর্তন করা যায় এবং এটি Unboxing নামে পরিচিত।


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 তে প্রিমিটিভ এবং অবজেক্ট টাইপ একে অপরের সাথে মিশ্রিতভাবে ব্যবহার করা যায়, যা কোডিংকে আরও সহজ এবং কার্যকর করে তোলে।


String: একটি বিশেষ Object Data Type

Groovy তে String একটি বিশেষ ধরনের Object ডেটা টাইপ। এটি Immutable অর্থাৎ, এর মান পরিবর্তন করা যায় না। String এ স্ট্রিং ইন্টারপোলেশন ব্যবহার করা যায়, যা কোডিংকে আরও সুবিধাজনক করে তোলে।

String name = "Groovy"
println "Hello, $name!"  // Output: Hello, Groovy!

Groovy তে স্ট্রিং এর ম্যানিপুলেশন সহজ এবং এটি ডায়নামিক ভাবে স্ট্রিং এর মেথড ব্যবহার করতে পারে।


Dynamic Typing: 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.content_added_by

ভেরিয়েবল ডিক্লারেশন এবং Initialization

158
158

ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন

Groovy (এবং অন্যান্য প্রোগ্রামিং ভাষা) তে ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন একটি গুরুত্বপূর্ণ ধারণা। এগুলি প্রোগ্রামে ডেটা স্টোর করার জন্য ব্যবহৃত হয়। ভেরিয়েবল হল এমন একটি সত্তা যা একটি নির্দিষ্ট ডেটা বা মান ধারণ করে এবং এর মাধ্যমে সেই ডেটাকে প্রোগ্রামে ব্যবহার করা হয়।

Groovy তে ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন অনেকটাই সহজ এবং সংক্ষিপ্ত, যা কোড লেখাকে আরও দ্রুত এবং সহজ করে তোলে।


১. ভেরিয়েবল ডিক্লারেশন (Variable Declaration)

ভেরিয়েবল ডিক্লারেশন হল একটি ভেরিয়েবল তৈরি করা এবং এটি একটি নির্দিষ্ট ডেটা টাইপের মধ্যে অন্তর্ভুক্ত করা। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হয়, অর্থাৎ ভেরিয়েবলটি ডিক্লেয়ার করার সময় তার টাইপ সুনির্দিষ্ট করা হয় না। Groovy এ, def কীওয়ার্ড ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করা হয়, যা টাইপের প্রতি কোনো নির্দিষ্টতা না রেখে ডাইনামিকভাবে টাইপকে সংজ্ঞায়িত করে।

ভেরিয়েবল ডিক্লারেশনের উদাহরণ:

def name      // ভেরিয়েবল ডিক্লেয়ারেশন
def age

এখানে name এবং age দুটি ভেরিয়েবল ডিক্লেয়ার করা হয়েছে, কিন্তু তাদের মান নির্ধারণ করা হয়নি।


২. ভেরিয়েবল ইনিশিয়ালাইজেশন (Variable Initialization)

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

ভেরিয়েবল ইনিশিয়ালাইজেশনের উদাহরণ:

def name = "Groovy"    // ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন
def age = 25

এখানে name ভেরিয়েবলটি "Groovy" এবং age ভেরিয়েবলটি ২৫ দিয়ে ইনিশিয়ালাইজ করা হয়েছে।


৩. টাইপ নির্ধারণ না করা (No Explicit Type Declaration)

Groovy তে টাইপ নির্ধারণ করার দরকার নেই, অর্থাৎ আপনি ভেরিয়েবল ডিক্লেয়ার করার সময় টাইপ উল্লেখ না করলেও চলবে। Groovy এই টাইপকে ডাইনামিকভাবে নির্ধারণ করে।

উদাহরণ:

def name = "Groovy"      // Groovy এটি একটি String টাইপ হিসাবে ধরবে
def age = 25             // Groovy এটি একটি Integer টাইপ হিসাবে ধরবে

এখানে, name এর টাইপ String এবং age এর টাইপ Integer স্বয়ংক্রিয়ভাবে নির্ধারণ করা হয়েছে।


৪. এক্সপ্রেসনের মাধ্যমে ইনিশিয়ালাইজেশন

Groovy তে আপনি ভেরিয়েবল ইনিশিয়ালাইজেশন করার সময় এক্সপ্রেশন ব্যবহার করতে পারেন। এক্সপ্রেশনটি মান রিটার্ন করবে, এবং সেই মানটি ভেরিয়েবলে অ্যাসাইন করা হবে।

উদাহরণ:

def result = 10 + 5      // এক্সপ্রেশন ব্যবহার করে ভেরিয়েবল ইনিশিয়ালাইজেশন
println result           // আউটপুট হবে 15

এখানে, 10 + 5 একটি এক্সপ্রেশন যা ১৫ রিটার্ন করে এবং তা result ভেরিয়েবলে অ্যাসাইন করা হয়।


৫. বিভিন্ন টাইপের ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজেশন

Groovy তে, আপনি বিভিন্ন ধরনের ডেটা টাইপের ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করতে পারেন, যেমন String, Integer, Boolean, ইত্যাদি।

উদাহরণ:

def name = "Groovy"         // String টাইপ
def age = 25                 // Integer টাইপ
def isActive = true          // Boolean টাইপ
def height = 5.9             // Double টাইপ

এখানে, আমরা চারটি আলাদা টাইপের ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করেছি।


সারাংশ

  1. ভেরিয়েবল ডিক্লারেশন (Variable Declaration): Groovy তে def কীওয়ার্ড ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করা হয়। টাইপ ডাইনামিকভাবে নির্ধারিত হয়।
  2. ভেরিয়েবল ইনিশিয়ালাইজেশন (Variable Initialization): ভেরিয়েবল তৈরি হওয়ার পর, তার মধ্যে প্রাথমিক মান অ্যাসাইন করা হয়।
  3. Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হওয়ায়, আপনি টাইপ নির্ধারণ না করেও ভেরিয়েবল ডিক্লেয়ার করতে পারেন, এবং Groovy নিজেই টাইপটি নির্ধারণ করে।

Groovy এর এই বৈশিষ্ট্যগুলি কোড লেখাকে আরও সহজ এবং দ্রুততর করে, এবং ডেভেলপারদের জন্য একটি সুবিধাজনক পরিবেশ সরবরাহ করে।

common.content_added_by

Type Inference এবং Def Keyword

201
201

Groovy তে Type Inference এবং def Keyword

Groovy একটি ডাইনামিক টাইপিং ভাষা, যার মানে হলো আপনি ভেরিয়েবল বা ফাংশন ডিক্লেয়ার করার সময় টাইপ নির্ধারণ করতে হয় না। Groovy তে Type Inference এবং def কীওয়ার্ড ব্যবহারের মাধ্যমে টাইপ নির্ধারণের প্রক্রিয়া অনেক সহজ হয়ে যায়। Groovy অটোমেটিকভাবে ভেরিয়েবলের টাইপ অনুমান করে, যার ফলে কোড লেখার সময় আপনি টাইপের ব্যাপারে চিন্তা না করেও কোড লিখতে পারেন।


1. Type Inference (টাইপ ইনফারেন্স)

টাইপ ইনফারেন্স একটি বৈশিষ্ট্য, যেখানে Groovy স্বয়ংক্রিয়ভাবে ভেরিয়েবলের টাইপ নির্ধারণ করে। আপনি একটি ভেরিয়েবল ডিক্লেয়ার করার সময় তার টাইপ উল্লেখ না করলেও Groovy সেই ভেরিয়েবলের মান দেখে তার টাইপ অনুমান করে নেয়।

Groovy তে টাইপ ইনফারেন্সের মাধ্যমে আপনি সহজে এবং দ্রুত কোড লিখতে পারেন, কারণ এতে টাইপের বিষয়ে কোনো নির্দিষ্ট নিয়ম বা বিবৃতি প্রয়োজন হয় না।

উদাহরণ:

def number = 10     // Groovy টাইপ ইনফারেন্সের মাধ্যমে number এর টাইপ 'Integer' হবে
def name = "John"   // Groovy 'String' টাইপ অনুমান করবে
def price = 20.5    // Groovy 'Double' টাইপ অনুমান করবে

println number   // Output: 10
println name     // Output: John
println price    // Output: 20.5

এখানে def কীওয়ার্ড ব্যবহার করা হয়েছে, তবে টাইপ explicitly উল্লেখ করা হয়নি। Groovy প্রতিটি ভেরিয়েবল দেখে তার টাইপ সঠিকভাবে অনুমান করেছে।


2. def Keyword (ডিফ কীওয়ার্ড)

Groovy তে def কীওয়ার্ড একটি গুরুত্বপূর্ণ অংশ যা ব্যবহার করে আপনি ডাইনামিকভাবে টাইপেড ভেরিয়েবল এবং ফাংশন ডিফাইন করতে পারেন। এটি একটি সাধারণ কীওয়ার্ড যা Groovy তে টাইপ অজানা ভেরিয়েবল বা ফাংশন ডিক্লেয়ার করতে ব্যবহৃত হয়। যখন আপনি def ব্যবহার করেন, তখন Groovy স্বয়ংক্রিয়ভাবে ভেরিয়েবল বা ফাংশনের টাইপ অনুমান করে নেয়।

def এর ব্যবহার:

  1. ভেরিয়েবল ডিক্লেয়ারেশন (Variable Declaration):
    def দিয়ে আপনি টাইপ নির্ধারণ না করেও ভেরিয়েবল ডিক্লেয়ার করতে পারেন। Groovy তার মান দেখে ভেরিয়েবলের টাইপ অনুমান করে।

    উদাহরণ:

    def x = 5         // 'Integer' টাইপ অনুমান করবে
    def y = "Hello"   // 'String' টাইপ অনুমান করবে
  2. ফাংশন ডিক্লেয়ারেশন (Function Declaration):
    def দিয়ে আপনি একটি ফাংশনও ডিক্লেয়ার করতে পারেন। এতে ফাংশনের রিটার্ন টাইপ উল্লেখ করার প্রয়োজন পড়ে না, Groovy ফাংশন রিটার্নের ভিত্তিতে টাইপ অনুমান করে।

    উদাহরণ:

    def add(a, b) {  // Groovy এখানে 'Integer' টাইপ অনুমান করবে যদি a এবং b Integer হয়
        return a + b
    }
    
    def result = add(10, 5)  // result হবে Integer টাইপ
    println result   // Output: 15

    এখানে, add ফাংশনের টাইপ Groovy স্বয়ংক্রিয়ভাবে অনুমান করবে, কারণ আমরা টাইপ উল্লেখ করিনি। ফাংশনটি যখন কল হবে, তখন Groovy প্যারামিটারদের মানের উপর ভিত্তি করে তার টাইপ অনুমান করবে।

  3. লিস্ট এবং ম্যাপ ডিক্লেয়ারেশন (List and Map Declaration):
    Groovy তে আপনি def ব্যবহার করে লিস্ট এবং ম্যাপ ডিক্লেয়ার করতে পারেন এবং Groovy স্বয়ংক্রিয়ভাবে তাদের টাইপও অনুমান করবে।

    উদাহরণ:

    def numbers = [1, 2, 3, 4]      // Groovy List হিসেবে ইনফার করবে
    def person = [name: "John", age: 30]  // Groovy Map হিসেবে ইনফার করবে
    
    println numbers   // Output: [1, 2, 3, 4]
    println person    // Output: [name:John, age:30]

Groovy তে def ব্যবহার করার সুবিধা

  1. সহজ এবং দ্রুত কোডিং: def দিয়ে টাইপ ডিক্লেয়ার করার প্রয়োজন না থাকায়, কোড দ্রুত লেখা যায় এবং কোড কমপ্যাক্ট হয়ে যায়।
  2. ডাইনামিক টাইপিং: Groovy ডাইনামিক টাইপিং সমর্থন করে, যার মানে আপনি runtime এ ভেরিয়েবলের টাইপ পরিবর্তন করতে পারেন। এটি কোড লেখার সময় আরো নমনীয়তা আনে।
  3. কমপ্যাক্ট কোড: টাইপ ইনফারেন্স এবং def এর মাধ্যমে কোড লেখা সহজ এবং কমপ্যাক্ট হয়, যা রিডেবিলিটি এবং রক্ষণাবেক্ষণ সহজ করে।

সারসংক্ষেপ:

Groovy তে টাইপ ইনফারেন্স এবং def কীওয়ার্ড কোড লেখার সময় টাইপ নির্ধারণে সহজতা আনে। Groovy এর টাইপ ইনফারেন্সের মাধ্যমে টাইপ উল্লেখ না করেও আপনি ভেরিয়েবল ডিক্লেয়ার করতে পারেন, এবং def ব্যবহার করে ফাংশন বা ভেরিয়েবল ডিক্লেয়ার করলে Groovy স্বয়ংক্রিয়ভাবে টাইপ অনুমান করে। এটি Groovy কে একটি ডাইনামিক এবং নমনীয় ভাষা হিসেবে গড়ে তোলে, যা কোড লেখার সময় সহজ এবং দ্রুত।

common.content_added_by

Strings, Numbers, এবং Collections এর ব্যবহার

189
189

Groovy তে Strings, Numbers, এবং Collections এর ব্যবহার

Groovy তে Strings, Numbers, এবং Collections ব্যবহারের জন্য বেশ কিছু শক্তিশালী বৈশিষ্ট্য রয়েছে, যা Java এর তুলনায় অনেক সহজ এবং বেশি নমনীয়। Groovy এর সিনট্যাক্স এবং কোডিং স্টাইল সহজ ও প্রাকৃতিক, যা ডেভেলপারদের দ্রুত কোড লেখার সুযোগ দেয়। নিচে Groovy তে Strings, Numbers, এবং Collections ব্যবহারের বিস্তারিত আলোচনা করা হলো।


1. Strings এর ব্যবহার

Groovy তে Strings লেখার জন্য Java এর মতো " " বা ' ' ব্যবহার করা হয়, তবে Groovy তে স্ট্রিং ইন্টারপোলেশন একটি শক্তিশালী ফিচার। এর মাধ্যমে স্ট্রিং এর মধ্যে ভেরিয়েবলগুলো সরাসরি ব্যবহার করা সম্ভব।

String Declaration:

Groovy তে Strings এর জন্য সাধারণভাবে double quotes অথবা single quotes ব্যবহার করা যায়।

  • Double quotes ব্যবহার করলে স্ট্রিং ইন্টারপোলেশন করা যায়।
  • Single quotes ব্যবহার করলে স্ট্রিং ইন্টারপোলেশন কাজ করবে না।

উদাহরণ:

// Double quotes (string interpolation)
def name = "Groovy"
println "Hello, $name!"  // Output: Hello, Groovy!

// Single quotes (no interpolation)
def message = 'Hello, Groovy!'
println message  // Output: Hello, Groovy!

String Methods:

Groovy Strings এ অনেক বিল্ট-ইন মেথড রয়েছে, যা Java এর তুলনায় অনেক সহজ।

  • .toUpperCase(), .toLowerCase(), .reverse(), .trim(), .replace(), .substring() ইত্যাদি মেথড পাওয়া যায়।

উদাহরণ:

def text = "  Hello, Groovy!  "
println text.trim()           // Output: "Hello, Groovy!"
println text.toUpperCase()    // Output: "HELLO, GROOVY!"
println text.reverse()        // Output: "!yvoorg ,olleH"

2. Numbers এর ব্যবহার

Groovy তে Numbers (অর্থাৎ, Integer, Double, BigDecimal ইত্যাদি) সাধারণভাবে Java এর মতো ব্যবহার করা হয়। তবে Groovy তে সংখ্যা গুলোর সাথে একাধিক অপারেশন সহজে করা যায়, যেমন গণনা এবং ফরম্যাটিং

Number Declaration:

Groovy তে আপনি সহজেই int, float, double ইত্যাদি ব্যবহার করতে পারেন, এবং Groovy নিজে তা টাইপ নির্ধারণ করে নেয়। যদি আপনি BigDecimal ব্যবহার করতে চান, তবে সেটি অবশ্যই স্পষ্টভাবে ডিফাইন করতে হবে।

উদাহরণ:

// Integer and Double
def num1 = 25
def num2 = 3.14

println num1 + 5         // Output: 30
println num2 * 2         // Output: 6.28

BigDecimal:

Groovy তে BigDecimal ব্যবহার করে বড় সংখ্যাগুলির সঠিক গণনা করা যেতে পারে, যেমন অর্থনৈতিক হিসাব বা পরিমাণের ক্ষেত্রে।

উদাহরণ:

def bigNum1 = 100.50
def bigNum2 = 0.10
def result = new BigDecimal(bigNum1.toString()).subtract(new BigDecimal(bigNum2.toString()))

println result   // Output: 100.40

Number Methods:

Groovy তে সংখ্যা নিয়ে কাজ করার জন্য অনেক মেথড রয়েছে, যেমন .abs(), .round(), .max(), .min(), .pow() ইত্যাদি।

উদাহরণ:

def x = -10
println x.abs()          // Output: 10
println x.pow(2)         // Output: 100

3. Collections এর ব্যবহার

Groovy তে Collections খুবই সহজ এবং শক্তিশালী ভাবে ব্যবহৃত হয়। এটি Lists, Maps, এবং Sets সহ বিভিন্ন ধরনের কালেকশন ব্যবস্থাপনা সহজ করে দেয়। Groovy তে এগুলি একটি সাধারণ সিনট্যাক্সের মাধ্যমে তৈরি করা যায় এবং Java এর তুলনায় অনেক দ্রুত এবং সহজে কাজ করা যায়।

Lists (ArrayLists):

Groovy তে Lists তৈরি করা খুবই সহজ। এখানে আপনি একাধিক উপাদান তালিকাভুক্ত করতে পারেন এবং পরে তাদের অ্যাক্সেস করতে পারেন।

উদাহরণ:

def myList = [1, 2, 3, 4, 5]
println myList            // Output: [1, 2, 3, 4, 5]
println myList[0]         // Output: 1
myList << 6               // Add 6 to the list
println myList            // Output: [1, 2, 3, 4, 5, 6]

Maps (HashMaps):

Groovy তে Maps ব্যবহার করার জন্য খুব সহজ সিনট্যাক্স রয়েছে। এখানে key-value pair আকারে ডেটা সংরক্ষণ করা হয়।

উদাহরণ:

def myMap = [name: "Groovy", type: "Dynamic"]
println myMap             // Output: [name:Groovy, type:Dynamic]
println myMap['name']     // Output: Groovy
myMap['version'] = '3.0'  // Add a new entry
println myMap             // Output: [name:Groovy, type:Dynamic, version:3.0]

Sets (HashSets):

Sets ব্যবহার করে আপনি ইউনিক মান সংরক্ষণ করতে পারেন, যেখানে একই মান একাধিকবার উপস্থিত থাকতে পারে না।

উদাহরণ:

def mySet = [1, 2, 3, 4, 5] as Set
println mySet             // Output: [1, 2, 3, 4, 5]
mySet.add(6)              // Add 6 to the set
println mySet             // Output: [1, 2, 3, 4, 5, 6]

Collection Methods:

Groovy তে Collections এর উপর অনেক ধরনের ফাংশনাল অপারেশন করা যেতে পারে, যেমন .each(), .collect(), .find(), .filter(), .sort() ইত্যাদি।

উদাহরণ:

def nums = [1, 2, 3, 4, 5]
nums.each { println it }  // Output: 1 2 3 4 5 (one by one)
def doubled = nums.collect { it * 2 }
println doubled          // Output: [2, 4, 6, 8, 10]

def evenNumbers = nums.findAll { it % 2 == 0 }
println evenNumbers      // Output: [2, 4]

সারাংশ

Groovy তে Strings, Numbers, এবং Collections খুবই সহজ এবং শক্তিশালীভাবে ব্যবহৃত হয়। Groovy এর শক্তিশালী ফিচারগুলি, যেমন স্ট্রিং ইন্টারপোলেশন, নমনীয় টাইপিং, এবং কলেকশন মেথড, কোড লেখাকে অনেক সহজ এবং দ্রুত করে তোলে। Groovy এর উন্নত ফিচারগুলি Java কোডের তুলনায় আরও সহজ এবং পাঠযোগ্য, যা ডেভেলপমেন্টের গতি বাড়ায় এবং কোডিংকে আরও কার্যকরী করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion