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

如何在 Go 语言中为结构使用动态键?

如何在 Go 语言中为结构使用动态键?

Go
慕斯王 2022-11-23 20:05:41
我有这个用于从 Json 字符串获取数据的结构。    type msg struct {         Msg1 string   `json:"msg1"`         Msg2 string  `json:"msg2"`         Msg3 string `json:"msg3"`    }我需要像下面这样使用这个结构。num := // some random number under 3data := msg.Msg + num  // as msg.Msg1, msg.Msg2...我怎么能在 Go 语言中做到这一点?我搜索了很多但找不到任何好的解决方案。
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

如何在 Go 语言中为结构使用动态键?

你根本做不到。这在 Go 中是不可行的。

(如果需要,请使用地图。)


查看完整回答
反对 回复 2022-11-23
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

只是告诉你如何使用 Json 和地图,可能会有帮助


package main


import (

    "fmt"

    "encoding/json"

)

type sample struct{

    Member1 string `json:"TheMember1"`

}



func main() {

    map_contains := make(map[string]string)

    //Part 1 Direct Add to Map

    map_contains["w"]="mmmmm"

    fmt.Println(map_contains)

    fmt.Println(map_contains["w"])

    

    //Part 2 JsonString to Map

    json.Unmarshal([]byte(`{"a":"123"}`),&map_contains)

    fmt.Println(map_contains)

    fmt.Println(map_contains["a"])


    //Part 3 Struct To JsonString To Map

    s1:=sample{

        Member1:"June",

    }

    s1json,err:=json.Marshal(s1)

    if err != nil {

        panic(err)

    }

    fmt.Println(string(s1json))

    json.Unmarshal(s1json,&map_contains)

    fmt.Println(map_contains)

    fmt.Println(map_contains["TheMember1"])

}


查看完整回答
反对 回复 2022-11-23
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

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