猿问

如何在golang中创建对象数组?

我有一个要求,需要将对象数组存储在变量中。对象有不同的类型。请参考以下示例:


 v := [ {"name":"ravi"},

        ["art","coding","music","travel"],

        {"language":"golang"},

        {"experience":"no"}

      ]

注意第二个元素是字符串本身的数组。经过研究,我想到将其存储为接口类型,例如:


 var v interface{} = [ {"name":"ravi"},

                       ["art","coding","music","travel"],

                       {"language":"golang"},

                       {"experience":"no"}

                     ]

尽管如此,我还是收到了一些我无法发现的编译错误。


ITMISS
浏览 476回答 2
2回答

杨__羊羊

您要求的是可能的 -游乐场链接:package mainimport "fmt"func main() {    v := []interface{}{        map[string]string{"name": "ravi"},        []string{"art", "coding", "music", "travel"},        map[string]string{"language": "golang"},        map[string]string{"experience": "no"},    }    fmt.Println(v)}但你可能不想这样做。您正在与类型系统作斗争,如果您这样做,我会质疑您为什么要使用 Go。考虑利用类型系统——playground 链接:package mainimport "fmt"type candidate struct {    name string    interests []string    language string    experience bool}func main() {    candidates := []candidate{        {            name: "ravi",            interests: []string{"art", "coding", "music", "travel"},            language: "golang",            experience: false,        },    }    fmt.Println(candidates)}

元芳怎么了

完美的 python 语法,但不幸的是使用了一些不太可读的东西。 https://golang.org/ref/spec#Composite_literals
随时随地看视频慕课网APP

相关分类

Go
我要回答