浅拷贝
来源:4-4 开发一个浏览器代理2

weibo_隱懓_0
2020-11-26
老师,深浅拷贝原理都懂,但是这个写法还是没太明白,能再解释下吗
*outReq = *req
写回答
2回答
-
go中new()返回的是一个指针类型
而*指针代表该指针指向的值
所以*outReq = *req 代表的是将outReq指向的那片内存空间的值设置成req指向的那片内存空间值, 也就是将两片不同地址空间上的内容设置为一样. 表达能力不太好 希望能看明白 或者自己在纸上画一下就好理解了
022021-01-10 -
soap丶
2020-12-03
另外go中有个语法糖, 对于指针类型的变量p不用用*p 的方式去取它的值 可以直接用p.xx 的方式操作, 如下代码:
type Cat struct {
Name string
}
func main() {
c := new(Cat)
c.Name = "catName"
print(c.Name)
}另外new()的原码如下
// The new built-in function allocates memory. The first argument is a type, // not a value, and the value returned is a pointer to a newly // allocated zero value of that type. func new(Type) *Type
慕课的代码模板竟然没有支持go的...
00
相似问题
老师,有关包的问题2
回答 2