老师请问14-8这节课里的profile需要定义成指针类型吗?
来源:15-8 用户信息解析器(上)

sd1700092
2018-04-03
我的理解是应该这样写:profile := &model.Profile{} 因为要改变profile的值,所以还是定义成指针类型比较好
后面还是profile.Age = age
请问我这样的理解对吗?
因为我是搞Java开发的,所以对什么时候用值类型什么时候用指针类型还是会有些混淆。。。
写回答
1回答
-
这里是说方法如果要改变成员变量的值,我们要用指针接收者。而不是说改变了就要指针。这里profile我的观点是不用指针比较好,因为是个值类型,连方法都没有,只是字段多了点,地位其实和整数啊,字符串啊差不多。
值还是指针,主要是作为参数传递给函数时考虑,当然接收者也是一种函数参数。如果传过去以后函数要改变它的值,并且体现在调它的人那里,比如体现在main函数里,那么才需要也必须使用指针。
另一个用处是优化,使用指针可以省一次拷贝。但是优化我们不要急着做,除非检测出来的确慢在这里。112018-04-04
相似问题