Go make 介紹

Undefined443發表於2024-05-23

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 程式的基礎。

相關文章