Go 語言中的 make
函式用於建立和初始化特定型別的物件,主要是用於建立切片(slice)、對映(map)和通道(channel)。make
函式與 new
函式不同,new
函式是用於分配記憶體,而 make
則是用於初始化物件並返回一個型別的引用。下面是 make
函式的詳細介紹和一些示例。
建立切片(Slice)
make
函式可以用來建立指定長度和容量的切片:
slice := make([]int, 5, 10)
這裡建立了一個長度為 5、容量為 10 的 int
型別切片。make
函式的第二個引數是切片的長度,第三個引數是切片的容量。如果不指定容量,預設容量等於長度。
slice := make([]int, 5)
建立對映(Map)
make
函式也可以用來建立對映:
m := make(map[string]int)
這裡建立了一個鍵為 string
型別、值為 int
型別的對映。
建立通道(Channel)
make
函式還可以用來建立通道:
ch := make(chan int)
這裡建立了一個傳遞 int
型別資料的無緩衝通道。你也可以建立帶緩衝的通道,指定緩衝區大小:
ch := make(chan int, 10)
使用示例
下面是一個包含切片、對映和通道的綜合示例:
package main
import "fmt"
func main() {
// 建立並使用切片
slice := make([]int, 5, 10)
for i := 0; i < len(slice); i++ {
slice[i] = i * 2
}
fmt.Println("切片:", slice)
// 建立並使用對映
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println("對映:", m)
// 建立並使用通道
ch := make(chan int, 2)
ch <- 1
ch <- 2
close(ch)
for value := range ch {
fmt.Println("通道值:", value)
}
}
總結
make
函式是 Go 語言中用於建立和初始化切片、對映和通道的內建函式。它與 new
函式不同,new
僅分配記憶體,而 make
則初始化物件並返回其引用。掌握 make
函式的用法,是編寫高效 Go 程式的基礎。