File
是一个结构体类型,那么表达式 new(File)
和 &File{}
是等价的。File f = new File(...)
。size := unsafe.Sizeof(T{})
。make()
的三种类型中的其中两个:make()
一个结构体变量,会引发一个编译错误,这还不是太糟糕,但是 new()
一个映射并试图使用数据填充它,将会引发运行时错误! 因为 new(Foo)
返回的是一个指向 nil
的指针,它尚未被分配内存。所以在使用 map
时要特别谨慎。