Structs এর মাধ্যমে Custom Data Types তৈরি করা

Structs এবং Methods (স্ট্রাক্ট এবং মেথড) - গো প্রোগ্রামিং (Go Programming) - Computer Programming

250

Go-তে Structs এর মাধ্যমে Custom Data Types তৈরি করা

Structs Go ভাষার একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা ডেভেলপারদের নিজস্ব কাস্টম ডেটা টাইপ তৈরি করতে সাহায্য করে। একটি struct হল এক ধরনের কাস্টম ডেটা টাইপ যা একাধিক ভিন্ন ধরনের ডেটাকে একত্রে ধারণ করে। Structs ব্যবহারের মাধ্যমে আপনি বিভিন্ন ধরনের ডেটা যুক্ত করে একটি সম্পূর্ণ ইউনিট তৈরি করতে পারেন।


১. Struct ডিফাইন করা

Go তে struct ডিফাইন করার জন্য type কীওয়ার্ড ব্যবহার করা হয়। Struct একটি ডেটা টাইপ যা একাধিক fields (ফিল্ড) ধারণ করে, এবং প্রতিটি ফিল্ডের একটি নির্দিষ্ট টাইপ থাকে।

১.১ Struct ডিফাইনেশন এবং ইনিশিয়ালাইজেশন

package main

import "fmt"

// Struct ডিফাইন করা
type Person struct {
    Name   string
    Age    int
    Height float64
}

func main() {
    // Struct এর ইনস্ট্যান্স তৈরি
    p1 := Person{
        Name:   "John Doe",
        Age:    30,
        Height: 5.9,
    }

    fmt.Println(p1)
}

এখানে, Person একটি struct টাইপ যা তিনটি ফিল্ড ধারণ করে: Name (string), Age (int), এবং Height (float64)। p1 এর মাধ্যমে আমরা Person struct এর একটি ইনস্ট্যান্স তৈরি করেছি।

আউটপুট:

{John Doe 30 5.9}

১.২ Struct ফিল্ড অ্যাক্সেস করা

Struct এর প্রতিটি ফিল্ডের মান অ্যাক্সেস করতে আপনি ডট (.) অপারেটর ব্যবহার করতে পারেন।

package main

import "fmt"

type Person struct {
    Name   string
    Age    int
    Height float64
}

func main() {
    p1 := Person{"Alice", 28, 5.5}
    
    fmt.Println("Name:", p1.Name)   // আউটপুট: Alice
    fmt.Println("Age:", p1.Age)     // আউটপুট: 28
    fmt.Println("Height:", p1.Height) // আউটপুট: 5.5
}

এখানে, p1.Name, p1.Age, এবং p1.Height এর মাধ্যমে আমরা Person struct এর ফিল্ড গুলির মান অ্যাক্সেস করেছি।


২. Struct এর মাধ্যমে Custom Data Types তৈরি করা

Go তে struct ব্যবহার করে আপনি একটি নতুন কাস্টম ডেটা টাইপ তৈরি করতে পারেন। এই কাস্টম টাইপটি আপনাকে আপনার প্রোগ্রামে বিভিন্ন ধরনের সম্পর্কিত ডেটা একত্রে সংগঠিত করতে সাহায্য করবে।

২.১ একাধিক Struct এর মাধ্যমে Custom Data Types

আপনি একাধিক struct তৈরি করতে পারেন এবং সেগুলির মধ্যে সম্পর্ক স্থাপন করতে পারেন। যেমন, একটি Address struct তৈরি করে, পরে সেটি Person struct এর মধ্যে ব্যবহার করতে পারেন।

package main

import "fmt"

// Address struct তৈরি
type Address struct {
    Street string
    City   string
    ZipCode int
}

// Person struct তৈরি
type Person struct {
    Name    string
    Age     int
    Address Address  // Address struct যুক্ত করা
}

func main() {
    // Address struct এর ইনস্ট্যান্স তৈরি
    address1 := Address{"123 Main St", "New York", 10001}

    // Person struct এর ইনস্ট্যান্স তৈরি
    person1 := Person{"John Doe", 30, address1}

    fmt.Println("Name:", person1.Name)
    fmt.Println("Age:", person1.Age)
    fmt.Println("Address:", person1.Address.Street, person1.Address.City, person1.Address.ZipCode)
}

এখানে, Person struct তে একটি Address struct অন্তর্ভুক্ত করা হয়েছে। এর মাধ্যমে, আমরা Person struct-এ Address struct এর মান অ্যাক্সেস করতে পারছি।

আউটপুট:

Name: John Doe
Age: 30
Address: 123 Main St New York 10001

৩. Pointers এবং Structs

Struct এর পয়েন্টার ব্যবহার করা হয় যখন আপনি struct এর ইনস্ট্যান্সকে অন্য ফাংশনে পাস করতে চান, অথবা struct এর ডেটা পরিবর্তন করতে চান। Go-তে পয়েন্টার ব্যবহার করে struct এর ডেটাকে ম্যানিপুলেট করা খুব সহজ।

৩.১ Struct পয়েন্টার ব্যবহার

package main

import "fmt"

// Struct ডিফাইন করা
type Person struct {
    Name   string
    Age    int
    Height float64
}

// Struct পয়েন্টার পাস করা
func updateAge(p *Person) {
    p.Age = 35  // struct এর Age ফিল্ড আপডেট করা
}

func main() {
    p1 := Person{"Alice", 28, 5.5}
    
    fmt.Println("Before update:", p1.Age) // আউটপুট: 28

    // Struct পয়েন্টার ফাংশনে পাঠানো
    updateAge(&p1)

    fmt.Println("After update:", p1.Age) // আউটপুট: 35
}

এখানে, updateAge ফাংশনটি Person struct এর পয়েন্টার নিয়েছে এবং তার Age ফিল্ডকে 35 এ আপডেট করেছে। &p1 এর মাধ্যমে আমরা p1 struct এর পয়েন্টার পাঠাচ্ছি।

আউটপুট:

Before update: 28
After update: 35

৪. Methods on Structs

Go-তে আপনি struct টাইপের উপর মেথড (functions) ডিফাইন করতে পারেন। এটি struct এর উপর নির্দিষ্ট আচরণ বা কার্যকারিতা যুক্ত করতে সাহায্য করে।

৪.১ Struct Methods

package main

import "fmt"

// Struct ডিফাইন করা
type Person struct {
    Name string
    Age  int
}

// Method ডিফাইন করা
func (p *Person) Greet() {
    fmt.Println("Hello, my name is", p.Name, "and I am", p.Age, "years old.")
}

func main() {
    p1 := Person{"John", 30}
    p1.Greet() // Method কল করা
}

এখানে, Greet একটি method যা Person struct এর পয়েন্টার দিয়ে ডিফাইন করা হয়েছে। এই method-টি Person struct এর Name এবং Age ফিল্ড ব্যবহার করে একটি গ্রীটিং বার্তা প্রিন্ট করে।

আউটপুট:

Hello, my name is John and I am 30 years old.

সারসংক্ষেপ

  • Structs: Go-তে structs একটি কাস্টম ডেটা টাইপ তৈরি করতে ব্যবহৃত হয়, যা একাধিক ভিন্ন ধরনের ডেটা একত্রে ধারণ করতে সক্ষম।
  • Pointers and Structs: Go-তে struct এর পয়েন্টার ব্যবহার করে আপনি struct এর ডেটা ম্যানিপুলেট এবং ফাংশনে পাস করতে পারেন।
  • Methods on Structs: Go-তে struct এর উপর মেথড (functions) ডিফাইন করা যায় যা struct এর ফিল্ডস নিয়ে কাজ করে।

Go তে Structs এর মাধ্যমে আপনি শক্তিশালী কাস্টম ডেটা টাইপ তৈরি করতে পারবেন এবং সেগুলি বিভিন্ন ফাংশনে ব্যবহার করে প্রোগ্রামের কার্যকারিতা বাড়াতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...