In Go, an
array
is a numbered sequence of elements of a
specific length. In typical Go code,
slices
are
much more common; arrays are useful in some special
scenarios.
|
|
|
package
main
|
|
import
"fmt"
|
|
func
main
()
{
|
Here we create an array
a
that will hold exactly
5
int
s. The type of elements and length are both
part of the array’s type. By default an array is
zero-valued, which for
int
s means
0
s.
|
var
a
[
5
]
int
fmt
.
Println
(
"emp:"
,
a
)
|
We can set a value at an index using the
array[index] = value
syntax, and get a value with
array[index]
.
|
a
[
4
]
=
100
fmt
.
Println
(
"set:"
,
a
)
fmt
.
Println
(
"get:"
,
a
[
4
])
|
The builtin
len
returns the length of an array.
|
fmt
.
Println
(
"len:"
,
len
(
a
))
|
Use this syntax to declare and initialize an array
in one line.
|
b
:=
[
5
]
int
{
1
,
2
,
3
,
4
,
5
}
fmt
.
Println
(
"dcl:"
,
b
)
|
You can also have the compiler count the number of
elements for you with
...
|
b
=
[
...
]
int
{
1
,
2
,
3
,
4
,
5
}
fmt
.
Println
(
"dcl:"
,
b
)
|
If you specify the index with
:
, the elements in
between will be zeroed.
|
b
=
[
...
]
int
{
100
,
3
:
400
,
500
}
fmt
.
Println
(
"idx:"
,
b
)
|
Array types are one-dimensional, but you can
compose types to build multi-dimensional data
structures.
|
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
)
|
You can create and initialize multi-dimensional
arrays at once too.
|
twoD
=
[
2
][
3
]
int
{
{
1
,
2
,
3
},
{
1
,
2
,
3
},
}
fmt
.
Println
(
"2d: "
,
twoD
)
}
|