答案解析:
new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。
new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。
make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel。
1:new 返回对象的指针
2:make 只能初始化 channel map slice
mark
ok
mark
new() 与 make() 的区别
mark
make 只能针对map、slice、chanel初始化,初始化出来。这4种var完后必须make才能使用。 new 针对其他变量,例如数组。
new 也可以用在引用类型中
m
m
new和make的区别
mk
【1】 初始化对象不同,make 主要是初始化 切片、通道、map等。【2】new 初始化出来只是一个指针,不分配内存。make 直接分配内存。
mark
mark
打卡
1
new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。
new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。
make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel。
mark
new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。
new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。
make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel。
new() 与 make() 的区别
mk
第三次打卡: new() 与 make() 的区别
new() 与 make() 的区别
mark
make 创建实例,new 只创建类型。 make 用于 切片、通道、map、还有一个什么来着忘了,其他的用new。
1
打卡
new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。
make和new都是初始化分配内存的 make用来初始化切片,chan,map的, 返回对象本身 new用来初始化string,int,数组等,返回对象的指针类型
1
mark
new() 与 make() 的区别
答案解析: new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。 new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。 make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel。
mark
mark
new() 与 make() 的区别
打卡
mark
make new
不对的地方请指教
https://oyto.github.io/2023/08/29/Go%E6%AF%8F%E6%97%A5%E4%B8%80%E9%A2%98/new%E5%92%8Cmake%E7%9A%84%E5%8C%BA%E5%88%AB-/
mk
1:new 返回对象的指针 2:make 只能初始化 channel map slice
mark
mark
两者都可以用来初始化, make用来slices,map,chan的初始化, new用来int,string,struct等的初始化 ,make初始化返回当前值,new初始化返回的是值的指针