array in golang
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)
3.71
7
// Sum function takes a pointer of array with 3 float numbers. if you define `a *[4]float64` then you get type error
func Sum(a *[3]float64) (sum float64) {
for _, v := range *a {
sum += v
}
return
}
array := [...]float64{7.0, 8.5, 9.1}
x := Sum(&array) // Note the explicit address-of operator
/*
## Array in Golang
1. There are major differences between the ways arrays work in
Go and C. In Go:
- Arrays are values. Assigning one array to another copies
all the elements.
- In particular, if you pass an array to a function, it will
receive a copy of the array, not a pointer to it.
- The size of an array is part of its type. The types [10]int
and [20]int are distinct.
2. The value property can be useful but also expensive; if you
want C-like behavior and efficiency, you can pass a pointer
to the array.
*/
Thank you!
7
0
3.89
9
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
Thank you!
9
0
3.67
6
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)
}
Thank you!
6
0
0
0
package main
import "fmt"
func main() {
var x [5]int // An array of 5 integers
x[0] = 100
x[1] = 101
x[3] = 103
x[4] = 105
fmt.Printf("x[0] = %d, x[1] = %d, x[2] = %d\n", x[0], x[1], x[2])
fmt.Println("x = ", x)
}
Thank you!
0
0
Are there any code examples left?
New code examples in category Go