golang 通过指针修改结构体,达到类似引用类型的目的
package main
import (
"fmt"
"strconv"
)
type UserInfo struct {
Id string //用户编号
Name string //用户名称
}
func main() {
//获取所有用户信息
usrs := GetAllUser()
//第一次打印
fmt.Println(usrs[0])
//遍历用户,批量重新设置姓名
for _, u := range usrs {
SetUserName(u)
}
//第二次打印
fmt.Println(usrs[0])
}
func GetAllUser() (usrs []*UserInfo) {
for i := 1; i < 3; i++ {
var u UserInfo
u.Id = strconv.Itoa(i) //设置用户编号
u.Name = "张三" + u.Id //设置用户名
usrs = append(usrs, &u)
}
return
}
func SetUserName(u *UserInfo) {
u.Name = "李四" //重置用户名
}
输出结果
&{1 张三1}
&{1 李四}