এ্যারে

গো ল্যাঙ্গুয়েজে এ্যারে হলো একই ধরনের আইটেমের সমষ্টি বা তালিকা। এবং এর আইটেম সংখ্যা নির্দিষ্ট থাকে। অর্থাৎ এ্যারে হয় ফিক্সড সাইজ।

এ্যারে ডিফাইন করা খুবই সহজ। প্রথমে var কিওয়ার্ড, এরপর ভ্যারিয়েবল এর নাম এবং শেষে স্কোয়ার ব্র্যাকেট [] এর মধ্যে এ্যারের সাইজ এবং ব্র্যাকেট শেষে এ্যারের টাইপ।

var a [5]int

এখানে a হলো একটি এ্যারে যেখানে আমরা ৫টি ইন্টিজার ভ্যালু সংরক্ষণ করতে পারি। গো ও জিরো বেইজড ইনডেক্স ফলো করে। অর্থাৎ প্রথম এলিমেন্টটির পজিশন হয় 0। সুতরাং শেষ এলিমেন্টটি আমরা এ্যাক্সেস করতে পারি এভাবে -

a[4] = 100
fmt.Println("get:", a[4])

আউটপুট:

get: 100

এখানে আমরা শেষ এলিমেন্টটির ভ্যালু হিসেবে 100 সেট করে দিচ্ছি। বিল্ট ইন len ফাংশনটি ব্যবহার করে আমরা এ্যারের সাইজ জানতে পারি।

fmt.Println("len:", len(a))

আউটপুট:

len: 5

আমরা চাইলে এ্যারে ডিক্লেয়ারেশনের পর কার্লি ব্রেইসের মধ্যে আইটেম গুলো ডিফাইন করে দিতে পারি। এভাবে আমরা নিচের মত করে একই সাথে এ্যারে ডিক্লেয়ার এবং তার ভ্যালুগুলো সেট করে দেই:

b := [5]int{1, 2, 3, 4, 5}
fmt.Println("dcl:", b)

আউটপুট:

dcl: [1 2 3 4 5]

মাল্টিডাইমেনশনাল এ্যারের জন্য প্রয়োজনীয় সংখ্যক স্কোয়ার ব্র্যাকেট যোগ করে সেগুলোর মধ্যে ঐ ডাইমেনশনে আইটেম সংখ্যা নির্দেশ করলেই হয়। যেমন:

var twoD [2][3]int

আমরা এর ভ্যালু গুলো ফর লুপ ব্যবহার করে এ্যাসাইন করে দিতে পারি:

for i := 0; i < 2; i++ {
for j := 0; j < 3; j++ {
twoD[i][j] = i + j
}
}
fmt.Println("2d: ", twoD)

আউটপুট:

2d: [[0 1 2] [1 2 3]]

তবে সাধারনত গো তে আমরা এ্যারের চেয়ে স্লাইস বেশি ব্যবহার করে থাকি। পরবর্তী চ্যাপ্টারে আমরা স্লাইস নিয়ে দেখবো।