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 李四}
上一篇:Vue中Vue.set()和this.$forceUpdate()的使用


下一篇:微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)