Golangのnewとmakeの使い方は?

Golangでは、newとmakeは異なるタイプの値を作成するために使用されます。

  1. newは、特定の型の値を指すポインタを作成し、そのポインタを返します。例えば、new(Type)は、Typeが一つの型である場合、その型のゼロ値を指すポインタを返します。

例:

type Person struct {
    Name string
    Age  int
}

func main() {
    p := new(Person)
    fmt.Println(p) // 输出:&{ 0}
}
  1. makeは指定された型の値を作成し、その値を返します。主にslice、map、channelの値を作成するために使用されます。

「私は日本の文化に興味を持っています。」
– 私は日本の文化に興味があります。

func main() {
    s := make([]int, 5)
    fmt.Println(s) // 输出:[0 0 0 0 0]

    m := make(map[string]int)
    fmt.Println(m) // 输出:map[]

    c := make(chan int)
    fmt.Println(c) // 输出:0xc0000a6000
}

make はスライス、マップ、チャネル型の値を作成する際にしか使用できず、他の型の値を作成することはできません。また、make が返す値はその型の参照であり、ポインタではありません。

bannerAds