老师您好!有几个有关指针的问题不是很清楚:
我是Java转Go的。
您说到值传递、引用传递这两种,实战时根本不知道到底应该使用值传递,还是引用传递!也就是到底什么场景需要用到指针,什么场景不需要用到指针!
例如这段代码:
package storage
type User struct {
Name string
Age int
}
// 获取该用户所属部门
func (u User) GetDepart() string {
switch {
case u.Age < 18:
return "裁缝部"
case u.Age > 18 && u.Age < 30 :
return "包装部"
default:
return "新人招待部"
}
}
package main
func main() {
user := storage.User{
Name: "张三",
Age: 24,
}
fmt.Println(user.GetDepart())
}
问:
// 上诉代码这个方法
func (u User) GetDepart() string {
...
}
// 和这段代码有什么区别?这个地方 *User 到底又做了什么?
func (u *User) GetDepart() string {
...
}