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

How can I use dynamic key for struct in Go lang?

我有这个结构用于从 Json 字符串中获取数据。

    type msg struct {
         Msg1 string   `json:"msg1"`
         Msg2 string  `json:"msg2"`
         Msg3 string `json:"msg3"`
    }

我需要像下面这样使用这个结构。

num := // some random number under 3
data := msg.Msg + num  // as msg.Msg1, msg.Msg2...

我如何在 Go 语言中执行此操作?
我搜索了很多但找不到任何好的解决方案。

How can I use dynamic key for struct in Go lang?

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

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

向您展示如何使用 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"])
}