为了账号安全,请及时绑定邮箱和手机立即绑定

无法分配给结构变量

无法分配给结构变量

Go
当年话下 2021-06-03 14:46:27
我有地图var users = make(map[int]User)我正在填写地图,一切都很好。后来,我想分配给 User 的值之一,但出现错误。type User struct {  Id int  Connected bool}users[id].Connected = true   // Error我也尝试编写一个函数来分配给它,但这也不起作用。
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

例如,


package main


import "fmt"


type User struct {

    Id        int

    Connected bool

}


func main() {

    users := make(map[int]User)

    id := 42

    user := User{id, false}

    users[id] = user

    fmt.Println(users)


    user = users[id]

    user.Connected = true

    users[id] = user

    fmt.Println(users)

}

输出:


map[42:{42 false}]

map[42:{42 true}]


查看完整回答
反对 回复 2021-06-07
?
RISEBY

TA贡献1856条经验 获得超5个赞

在这种情况下,将指针存储在映射中而不是结构中是有帮助的:


package main


import "fmt"


type User struct {

        Id        int

        Connected bool

}


func main() {

        key := 100

        users := map[int]*User{key: &User{Id: 314}}

        fmt.Printf("%#v\n", users[key])


        users[key].Connected = true

        fmt.Printf("%#v\n", users[key])

}

输出:

&main.User{Id:314, Connected:false}
&main.User{Id:314, Connected:true}


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信