go語言常用函式 make

2021-08-18 11:00:59 字數 1168 閱讀 7753

內建函式 make 用來為 slice,map 或 chan 型別分配記憶體和初始化乙個物件(注意:只能用在這三種型別上)

使用make來建立slice,map,chanel說明如下:

// 長度為5,容量為10的slice,slice中的元素是int

var slice_ [

]int

=make([

]int,5

,10)fmt.

println

(slice_)

var slice_1 [

]int

=make([

]int,5

)fmt.

println

(slice_1)

var slice_2 [

]int=[

]int

fmt.

println

(slice_2)

列印結果:

[0 0 0 0 0]

[0 0 0 0 0]

[1,2]

用第三個引數設定該slice的容量(即底層陣列的長度)。如果能夠預足容量,那麼在slice中資料增長的過程中不需要更換底層陣列(附帶拷貝過程),這樣效率更高。

var m_ map

[string

]int

=make

(map

[string

]int

)m_[

"one"]=

1fmt.

println

(m_)

var m map

[string

]int

=map

[string

]int

m["2"]=

2fmt.

println

(m)

列印結果:

map[one:1]

map[1:1 2:2]

根據 size 大小來初始化分配記憶體,不過分配後的 map 長度為 0,如果 size 被忽略了,那麼會在初始化分配記憶體時分配乙個小尺寸的記憶體

管道緩衝區依據緩衝區容量被初始化。如果容量為 0 或者忽略容量,管道是沒有緩衝區的 (?)

go語言常用函式

示例1 1 arr1 int 3 fmt.println arr2 輸出 1,2,3,4,5,6 1 arr1 int 2 arr2 int 4 fmt.println arr3 輸出 1,2,3,4,5,6 copy 用於從乙個陣列切片複製到另乙個陣列切片。如果加入的兩個陣列切片不一樣大,就會按其...

go語言的new和make

golang的new和make主要區別如下 effective go舉了乙個例子,見 對於struct的分配和初始化,除了可以使用new外,還可以這樣做 t 例如 func testalloc t testing.t var t1 t t1 new t fmt.println t1 t2 t fmt...

Go 語言程式設計 make 和 new

make 和 new 都是 golang 的內建函式,作為用於記憶體分配的原語 allocation primitives 其功能相似,卻有著本質的區別。the new built in function allocates memory.the first argument is a type,n...