golang array code example

Example 1: how to get the length of an array in go

array:=[]int {1,2,3,4}
len(array)

Example 2: golang array syntax

var arr1 [3]int                                           //ARRAY syntax#1
	arr2 := [2]string{"Hello", "World"}                       //ARRAY syntax#2 (composite literal)(identifier:= type{values})
	arr3 := [...]int{12, 13, 14, 15, 16}                      //ARRAY syntax#3
	arr4 := [5][2]int{{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} //ARRAY syntax#4
	var arr5 [4][3]int					  //ARRAY syntax#4.1
	arr5[0] = [3]int{1, 2, 3}
	arr5[1] = [3]int{4, 5, 6}
	arr5[2] = [3]int{7, 8, 9}

	fmt.Println(arr1, arr2, arr3, arr4, arr5)

Example 3: interface to array golang

func test(t interface{}) {
    switch reflect.TypeOf(t).Kind() {
    case reflect.Slice:
        s := reflect.ValueOf(t)

        for i := 0; i < s.Len(); i++ {
            fmt.Println(s.Index(i))
        }
    }
}

Example 4: go arrays

var a [10]int // declare an int array with length 10. Array length is part of the type!
a[3] = 42     // set elements
i := a[3]     // read elements

// declare and initialize
var a = [2]int{1, 2}
a := [2]int{1, 2} //shorthand
a := [...]int{1, 2} // elipsis -> Compiler figures out array length

Example 5: go slice

// loop over an array/a slice
for i, e := range a {
    // i is the index, e the element
}

// if you only need e:
for _, e := range a {
    // e is the element
}

// ...and if you only need the index
for i := range a {
}

// In Go pre-1.4, you'll get a compiler error if you're not using i and e.
// Go 1.4 introduced a variable-free form, so that you can do this
for range time.Tick(time.Second) {
    // do it once a sec
}

Example 6: golang array

package main

import (
	"fmt"
)

func main() {

	// array with not range maximal capacity
	arrayNotMax := [...]int{1991, 1992, 1993, 1994, 1995}

	// array with range maximal capacity
	var arrayMax [3]int
	arrayMax[0] = 1990
	arrayMax[1] = 1991
	arrayMax[2] = 1992

	// array using make method
	var arrayWithMake = make([]string, 3)
	arrayWithMake[0] = "zero"
	arrayWithMake[1] = "one"
	arrayWithMake[2] = "two"

	// array multi dimension
	var arrayMultiDimension = [2][5]int{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}}

	fmt.Printf("read arrayNotMax value %#v \n", arrayNotMax)
	fmt.Printf("read arrayMax value %#v \n", arrayMax)
	fmt.Printf("read arrayWithMake value %#v \n", arrayWithMake)
	fmt.Println("read length of array", len(arrayNotMax))
	fmt.Println("read capacity of array", cap(arrayNotMax))
	fmt.Println("read arrayMultiDimension value", arrayMultiDimension)

}

Tags:

Go Example