请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师请问14-8这节课里的profile需要定义成指针类型吗?

我的理解是应该这样写:profile := &model.Profile{} 因为要改变profile的值,所以还是定义成指针类型比较好

后面还是profile.Age = age

请问我这样的理解对吗?

因为我是搞Java开发的,所以对什么时候用值类型什么时候用指针类型还是会有些混淆。。。

正在回答

1回答

这里是说方法如果要改变成员变量的值,我们要用指针接收者。而不是说改变了就要指针。这里profile我的观点是不用指针比较好,因为是个值类型,连方法都没有,只是字段多了点,地位其实和整数啊,字符串啊差不多。
值还是指针,主要是作为参数传递给函数时考虑,当然接收者也是一种函数参数。如果传过去以后函数要改变它的值,并且体现在调它的人那里,比如体现在main函数里,那么才需要也必须使用指针。
另一个用处是优化,使用指针可以省一次拷贝。但是优化我们不要急着做,除非检测出来的确慢在这里。

1 回复 有任何疑惑可以回复我~
  • 提问者 sd1700092 #1
    非常感谢!指针主要是作为参数传递给函数时要用到
    回复 有任何疑惑可以回复我~ 2018-04-04 06:56:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信