golang new [0]int比较时令人不解的问题

package main

import (
    "fmt"
)

func main() {
    a:=new([0]int)
    b:=new([0]int)

    fmt.Println(a,b,a==b)

    c:=new([0]int)
    d:=new([0]int)
    fmt.Println(c==d)


    e:=new([1]int)
    f:=new([1]int)
    fmt.Println(e,f,e==f)
}

输出结果:
&[] &[] true
false
&[0] &[0] false

为什么a==b=true,c==d=false?

那你如果fmt.Println(c,d,c==d)的话,c==d也是true了呢

new完好像存的是指针 *[0]int
“每次调用new函数都是返回一个新的变量的地址,因此两个地址是不同的“ 出false是对的
true就不知道了 是不是有什么语法糖