make — allocates and initializes slices, maps, channels. new — allocates zeroed memory.
make:
1// Slice2s := make([]int, 0, 10) // len=0, cap=1034// Map5m := make(map[string]int)67// Channel8ch := make(chan int, 10)
new:
1// Allocates int, returns *int2p := new(int)3*p = 4245// Allocates struct6type Person struct { Name string }7p := new(Person)8p.Name = "Alice" // Zero value: ""
Key differences: