Golangのnewとmakeの使い方は?
Golangでは、newとmakeは異なるタイプの値を作成するために使用されます。
- newは、特定の型の値を指すポインタを作成し、そのポインタを返します。例えば、new(Type)は、Typeが一つの型である場合、その型のゼロ値を指すポインタを返します。
例:
type Person struct {
Name string
Age int
}
func main() {
p := new(Person)
fmt.Println(p) // 输出:&{ 0}
}
- 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 が返す値はその型の参照であり、ポインタではありません。