You are currently viewing Fundamentals of GoLang Arrays: Everything You Need to Know

Fundamentals of GoLang Arrays: Everything You Need to Know

Arrays are an essential data structure in any programming language, including Go (Golang). They allow us to store multiple values of the same type sequentially in memory. This article explores the fundamentals of GoLang arrays, covering everything from declaration and initialization to accessing elements and performing common operations. By the end, you will have a comprehensive understanding of arrays in GoLang.

Declaration and Initialization

In GoLang, arrays have a fixed length that must be specified at compile time. The syntax to declare an array is as follows:

var arrayName [length] dataType

For example, to declare an array named “numbers” capable of holding 5 integers, you would write:

package main

import "fmt"

func main() {

	var numbers [5] int

	// Get array length
	var length int = len(numbers)

	// Output: 5
	fmt.Println(length)

}

Alternatively, you can initialize an array during declaration:

package main

import "fmt"

func main() {

	var numbers = [5] int { 1, 2, 3, 4, 5 }

	// Get array length
	var length int = len(numbers)

	// Output: 5
	fmt.Println(length)

}

Or you can let the compiler infer the length based on the number of initial values:

package main

import "fmt"

func main() {

	numbers := [...] int { 1, 2, 3, 4, 5 }

	// Get array length
	var length int = len(numbers)

	// Output: 5
	fmt.Println(length)

}

Accessing Array Elements

To access elements in an array, you use zero-based indexing. For instance, to access the first and second elements of the “numbers” array, you would write:

package main

import "fmt"

func main() {

	numbers := [...] int { 1, 2, 3, 4, 5 }

	// Access first number
	fst := numbers[0]

	// Access second number
	snd := numbers[1]

	// Print the first number
	fmt.Printf("The first number is %d.\n", fst)

	// Print the second number
	fmt.Printf("The second number is %d.\n", snd)

}

Modifying Array Elements

Arrays in GoLang are mutable, meaning you can modify individual elements. To assign a new value to an element, use the assignment operator (=):

package main

import "fmt"

func main() {

	numbers := [...] int { 1, 2, 3, 4, 5 }

	// Modify the value at index 0 to 10
	numbers[0] = 10

	// Print the value at index 0
	fmt.Println(numbers[0])

}

Array Length

The length of an array in GoLang is obtained using the len() function. For example:

package main

import "fmt"

func main() {

	numbers := [...] int { 1, 2, 3, 4, 5 }

	// Get the length of the numbers array
	length := len(numbers)
	
	// Print the length of the numbers array
	fmt.Println(length)

}

Iterating Over an Array

To iterate over the elements of an array, you can use a for loop and the range keyword:

package main

import "fmt"

func main() {

	numbers := [...] int { 1, 2, 3, 4, 5 }

	// Iterating over the numbers array
	for index, value := range numbers {

		// Prints the index and corresponding value
		fmt.Println(index, value)

	}

}

Multidimensional Arrays

GoLang also supports multidimensional arrays. To declare a 2D array, use the following syntax:

package main

import "fmt"

func main() {

	// An empty 2D array
	var matrix1 [3][3] int

	// Print the length of the matrix1
	// Output: 3 (An array of 3 arrays)
	fmt.Println(len(matrix1))

	matrix2 := [3][3] int {
	  {1, 2, 3},
    	  {4, 5, 6},
	  {7, 8, 9},
	}

	// Print the length of the matrix2
	// Output: 3 (An array of 3 arrays)
	fmt.Println(len(matrix2))

}

You can access and modify elements of a 2D array using two sets of indices:

package main

import "fmt"

func main() {

	matrix := [3][3] int {
	  {1, 2, 3},
	  {4, 5, 6},
	  {7, 8, 9},
	}

	// Modify the value at row 1, column 2 to 60
	matrix[1][2] = 60

	// Access and print the value at row 1, column 2
	fmt.Println(matrix[1][2])

}

Array Functions

GoLang provides some built-in functions to work with arrays, such as copy() and append().

The copy() Function

The copy() function allows you to copy elements from one array to another:

package main

import "fmt"

func main() {

	numbers := [...] int { 10, 20, 30, 40, 50 }

	var copiedNumbers [5] int

	copy(copiedNumbers[:], numbers[:])

	for index, value := range copiedNumbers {

		fmt.Println(index, value)

	}

}

The append() Function

The append() function is used to add elements to the end of an array. However, keep in mind that GoLang arrays have a fixed length, so you may need to create a new array and copy the elements:

package main

import "fmt"

func main() {

	numbers := [...]int{10, 20, 30, 40, 50}

	newNumbers := append(numbers[:], 60, 70, 80, 90)

	for index, value := range newNumbers {

		fmt.Println(index, value)

	}

}

Conclusion

Arrays are a fundamental data structure in GoLang, providing a way to store and manipulate multiple values of the same type. This article covered the basics of array declaration, initialization, accessing elements, modifying values, obtaining the length, iterating, and even working with multidimensional arrays. By mastering these fundamentals, you will be equipped to leverage the power of arrays in your GoLang programs.

Remember, arrays have fixed sizes, so if you require a dynamic collection of elements, you may want to explore slices or other data structures offered by GoLang.

Sources:

I hope you found this information informative. If you would like to receive more content, please consider subscribing to our newsletter!

Leave a Reply