用户有许多 id 字段 - 每种类型的社交登录都有一个:type User struct { Name string Github_id string Facebook_id string Google_id string}我有存储providerand 的变量id:provider := "github" //could be facebook or google tooid := "12345"和一个用户:var user Useruser.Name = "Bob"但是如何将 id 分配给正确的属性?我试过了:if provider == "github" { field := "Github_id" user.field = id //and also user[field] = id}但到目前为止还没有成功。附加说明我的用户可能有多个社交登录帐户,因此我不能仅使用单个social_id属性作为此问题的解决方案。
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
在这种情况下,对结构执行反射以填充正确的字段似乎有点过头了。
我建议在你的User结构中有一个 map 字段来保存所有的社交 ID。例子:
type User struct {
Name string
IDs map[string]string
}
func NewUser() *User {
return &User{
IDs: make(map[string]string),
}
}
用法:
provider := "github" // could be facebook or google too
id := "12345"
user := NewUser()
user.Name = "Bob"
user.IDs[provider] = id
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消