内置函数new() 和struct{} 初始化的区别

一.new()

这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针。
在golang的代码定义如下:

func new(t Type) *Type 

  

二.struct{}

用struct{} 来初始化strut时,返回的是一个struct类型的值

 

三.示例

type Son struct {
}

func main() {
	son := new(Son)
	son2 := Son{}
	fmt.Println(son) // 打印出&{}
	fmt.Println(son2) // 打印出{}
}

  

 

posted @ 2017-10-08 22:15  rorshach  阅读(567)  评论(0编辑  收藏  举报