标签:类型 地址 的区别 float 对象 UNC pack Golan 注意
Golang中有两个负责内存分配的内建函数:new和make.二者有明显区别.
new:new函数用于初始化一个对象,并返回该对象的首地址,可以用于初始化任何类型
make:make函数返回一个初始化的实例,只能用于初始化map,slice,channel三种类型
1 package main 2 3 import "fmt" 4 5 func main(){ 6 a := new([]int) 7 fmt.Println(a) //a本身是一个地址,输出&[] 8 b := make([]int,1) 9 fmt.Println(b) //b本身是一个数组,输出[0] 10 }
需要注意的是使用new初始化一个对象只能进行默认初始化
package main
import "fmt" type Rect struct{ x,y float64 width,height float64 } func main{ c := new(Rect) fmt.Println(c) //输出&{0,0,0,0},进行默认初始化
rect1 := &Rect{0,0,100,200}
fmt.Println(rect1) //输出&{0,0,100,200}
}
标签:类型 地址 的区别 float 对象 UNC pack Golan 注意
原文地址:https://www.cnblogs.com/goback20170622/p/10277416.html