go语言的指针不能移动 go语言指针和c++一样吗( 二 )


fmt.scan() 就是传入一个指针变量 。
两种方法都可以使用 。
以上简要介绍了go语言中的指针和结构体 。
go语言中指针的使用场景?如果该函数会修改receiver,此时一定要用指针
如果receiver是 struct 并且包含互斥类型 sync.Mutex  , 或者是类似的同步变量,receiver必须是指针,这样可以避免对象拷贝
如果receiver是较大的 struct 或者 array,使用指针则更加高效 。多大才算大?假设struct内所有成员都要作为函数变量传进去 , 如果觉得这时数据太多 , 就是struct太大
如果receiver是 struct ,array 或者 slice ,并且其中某个element指向了某个可变量,则这个时候receiver选指针会使代码的意图更加明显
如果receiver使较小的 struct 或者 array,并且其变量都是些不变量、常量,例如 time.Time ,value receiver更加适合,因为value receiver可以减少需要回收的垃圾量 。
go语言的指针不能移动的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于go语言指针和c++一样吗、go语言的指针不能移动的信息别忘了在本站进行查找喔 。

推荐阅读