10
我想創建一個大小爲N的數組,但是我不知道在編譯時N是什麼,我將如何爲它分配內存?如何在go編程語言中爲數組分配內存?
例如
func MakeArray(size int) {
return new ([size]int)
}
由於尺寸不是常數,所以不起作用。
這似乎是一個簡單的問題,但我剛開始使用go,對於我來說,閱讀教程(或查找相關文檔)並不明顯。
我想創建一個大小爲N的數組,但是我不知道在編譯時N是什麼,我將如何爲它分配內存?如何在go編程語言中爲數組分配內存?
例如
func MakeArray(size int) {
return new ([size]int)
}
由於尺寸不是常數,所以不起作用。
這似乎是一個簡單的問題,但我剛開始使用go,對於我來說,閱讀教程(或查找相關文檔)並不明顯。
函數make
創建切片,貼圖和通道,並返回類型T的初始化值。make()
調用分配一個新的隱藏數組,返回的切片值引用該數組。
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])
}
}
對於切片,內置函數有兩個或三個參數。
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
啊謝謝,沒有意識到'make'有第二個參數,但'新'沒有。 –