How do I allocate memory for an array in the go programming language?
I want to make an array of size N in go, but I don't know what N will be at compile time, how would I allocate memory for it?
e.g.
func开发者_运维百科 MakeArray(size int) {
return new ([size]int)
}
which doesn't work since size is not a constant.
This seems like a simple question, but I just started using go and it's not obvious to me how to do this from reading the tutorial (or searching the documentation for that matter).
The function make
creates slices, maps, and channels, and it returns an initialized value of type T. The make()
call allocates a new, hidden array to which the returned slice value refers.
package main
import "fmt"
func main(){
ptr := new(int)
*ptr = 100
fmt.Println("*ptr = ", *ptr)
slice := make([]int, 10) // slice with len(slice) == cap(slice) == 10
for i:=0; i<len(slice); i++{
fmt.Println(slice[i])
}
}
For slices, the Go make
built-in function has two or three arguments.
make(T, n) slice of type T with length n and capacity n
make(T, n, m) slice of type T with length n and capacity m
精彩评论