Multidimensional Arrays এবং Slices

Arrays এবং Slices (অ্যারে এবং স্লাইস) - গো প্রোগ্রামিং (Go Programming) - Computer Programming

290

Go-তে Multidimensional Arrays এবং Slices এর ব্যবহার

Go প্রোগ্রামিং ভাষায় Multidimensional Arrays এবং Slices দুটি ডেটা স্ট্রাকচার যা একাধিক মান ধারণ করতে সক্ষম। এগুলি সাধারণত ব্যবহার করা হয় যখন আপনাকে একাধিক ডেটা একত্রে ম্যানেজ করতে হয়, যেমন টেবিল বা ম্যাট্রিক্সের মতো কাঠামো। চলুন, এই দুইটি ডেটা স্ট্রাকচার এর ব্যবহার এবং তাদের মধ্যে পার্থক্য সম্পর্কে আলোচনা করি।


১. Multidimensional Arrays (বহুমাত্রিক অ্যারে)

Multidimensional Arrays হল অ্যারের অ্যারে। এটি এমন একটি অ্যারে যা এক বা একাধিক অ্যারে ধারণ করে। Go-তে, বহুমাত্রিক অ্যারে সাধারণত 2D বা 3D ম্যাট্রিক্স বা টেবিলের মতো ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।

১.১ Multidimensional Array ডিফাইনেশন

Go তে বহুমাত্রিক অ্যারে ডিফাইন করতে প্রথমে তার আকার নির্ধারণ করতে হয়, যেমন 2D অ্যারে (যেখানে 2টি ডাইমেনশন থাকে)।

package main

import "fmt"

func main() {
    // 2D অ্যারে ডিফাইন করা
    var arr [2][3]int

    // অ্যারের মান অ্যাসাইন করা
    arr[0][0] = 1
    arr[0][1] = 2
    arr[0][2] = 3
    arr[1][0] = 4
    arr[1][1] = 5
    arr[1][2] = 6

    fmt.Println("Array:", arr)
}

এখানে, arr একটি 2D অ্যারে যা 2টি রো এবং 3টি কলাম ধারণ করে। আমরা তার মানগুলি অ্যাসাইন করেছি এবং পরবর্তীতে অ্যারে প্রিন্ট করেছি।

আউটপুট:

Array: [[1 2 3] [4 5 6]]

১.২ 2D অ্যারে ইনিশিয়ালাইজ করা

এটি সরাসরি ইনিশিয়ালাইজ করেও করা যেতে পারে:

package main

import "fmt"

func main() {
    // 2D অ্যারে ইনিশিয়ালাইজ করা
    arr := [2][3]int{
        {1, 2, 3},
        {4, 5, 6},
    }

    fmt.Println("Array:", arr)
}

এখানে, আমরা সরাসরি অ্যারের মানগুলো ইনিশিয়ালাইজ করেছি। আউটপুট একই হবে:

Array: [[1 2 3] [4 5 6]]

১.৩ 3D অ্যারে

এটি 3D অ্যারের একটি উদাহরণ:

package main

import "fmt"

func main() {
    // 3D অ্যারে ডিফাইন করা
    var arr [2][2][2]int

    // অ্যারের মান অ্যাসাইন করা
    arr[0][0][0] = 1
    arr[0][0][1] = 2
    arr[0][1][0] = 3
    arr[0][1][1] = 4
    arr[1][0][0] = 5
    arr[1][0][1] = 6
    arr[1][1][0] = 7
    arr[1][1][1] = 8

    fmt.Println("3D Array:", arr)
}

এটি একটি 3D অ্যারে, যা 2টি 2D অ্যারে ধারণ করে, এবং প্রতিটি 2D অ্যারে 2টি 1D অ্যারে ধারণ করে।


২. Slices (স্লাইস)

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

২.১ Slice ডিফাইনেশন

Slices অ্যারের মতো হলেও তাদের আকার স্থির নয়। তারা [] দ্বারা ডিফাইন করা হয়।

package main

import "fmt"

func main() {
    // Slice ডিফাইন করা
    var slice []int

    // Slice-এ মান অ্যাসাইন করা
    slice = append(slice, 1)
    slice = append(slice, 2)
    slice = append(slice, 3)

    fmt.Println("Slice:", slice)
}

এখানে, আমরা একটি slice তৈরি করেছি এবং append ফাংশন ব্যবহার করে এতে মান যুক্ত করেছি। append ফাংশনটি স্লাইসের শেষে নতুন মান যোগ করে এবং স্লাইসটির আকার স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়।

আউটপুট:

Slice: [1 2 3]

২.২ Slice ইনিশিয়ালাইজ করা

Slice ইনিশিয়ালাইজ করার সময়, আমরা তার প্রথম মানগুলোও সরাসরি দিতে পারি।

package main

import "fmt"

func main() {
    // Slice ইনিশিয়ালাইজ করা
    slice := []int{1, 2, 3, 4}

    fmt.Println("Slice:", slice)
}

এখানে, স্লাইসে মানগুলি সরাসরি ইনিশিয়ালাইজ করা হয়েছে। আউটপুট:

Slice: [1 2 3 4]

২.৩ Slice এর আকার এবং ক্যাপাসিটি

Go তে স্লাইসের দুটি গুরুত্বপূর্ণ গুণাবলী থাকে: length এবং capacitylen() ফাংশন দিয়ে স্লাইসের আকার এবং cap() ফাংশন দিয়ে তার ক্যাপাসিটি পাওয়া যায়।

package main

import "fmt"

func main() {
    slice := []int{1, 2, 3, 4, 5}

    fmt.Println("Length:", len(slice))    // আউটপুট: 5
    fmt.Println("Capacity:", cap(slice))  // আউটপুট: 5
}

এখানে, স্লাইসের আকার 5 এবং ক্যাপাসিটি 5।

২.৪ Slice এর অংশ (Slicing a Slice)

Slice-এ বিভিন্ন অংশে ডাটা অ্যাক্সেস করতে [:] স্লাইসিং অপারেটর ব্যবহার করা হয়। এটি একটি স্লাইসের নির্দিষ্ট পরিসর তৈরি করে।

package main

import "fmt"

func main() {
    slice := []int{10, 20, 30, 40, 50}

    // Slice-এর অংশ নেওয়া
    newSlice := slice[1:4]  // এটি 20, 30, 40 নেয়

    fmt.Println("Original Slice:", slice)
    fmt.Println("Sliced Slice:", newSlice)
}

আউটপুট:

Original Slice: [10 20 30 40 50]
Sliced Slice: [20 30 40]

৩. Multidimensional Slices (বহুমাত্রিক স্লাইস)

Slices এর সাহায্যে আপনি বহুমাত্রিক অ্যারে তৈরি করতে পারেন, যা 2D বা 3D টেবিলের মতো কাজ করতে পারে।

৩.১ 2D Slice উদাহরণ

package main

import "fmt"

func main() {
    // 2D Slice ডিফাইন করা
    matrix := [][]int{
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9},
    }

    fmt.Println("2D Slice:", matrix)
}

এখানে, matrix একটি 2D স্লাইস, যা তিনটি ভিন্ন স্লাইস ধারণ করে। আউটপুট:

2D Slice: [[1 2 3] [4 5 6] [7 8 9]]

সারসংক্ষেপ

  • Multidimensional Arrays: Go-তে একাধিক মাত্রার অ্যারে তৈরি করতে হয়, যা একে অন্যের মধ্যে অ্যারের ইনস্ট্যান্স ধারণ করে। সাধারণত ম্যাট্রিক্স বা টেবিলের জন্য ব্যবহৃত হয়।
  • Slices: স্লাইস হলো অ্যারের একটি উন্নত সংস্করণ যা আকারে পরিবর্তিত হতে পারে। স্লাইসের আকার এবং ক্যাপাসিটি স্বয়ংক্রিয়ভাবে পরিবর্তিত হয়।
  • Multidimensional Slices: স্লাইস ব্যবহার করে বহুমাত্রিক অ্যারে তৈরি করা সম্ভব, যা টেবিল বা ম্যাট্রিক্সের মতো কাজ করে।

Go তে Multidimensional Arrays এবং Slices ব্যবহার করে আপনি আরও দক্ষ এবং নমনীয় ডেটা ম্যানিপুলেশন করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...