dpbz14739 2015-10-09 06:29
浏览 2437
已采纳

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

I have a requirement in which I need to store array of objects in a variable. The objects are of different types. Refer to following example:

 v := [ {"name":"ravi"},
        ["art","coding","music","travel"],
        {"language":"golang"},
        {"experience":"no"}
      ]

Notice the second element is array of string itself. After research, I thought of storing this as interface type like:

 var v interface{} = [ {"name":"ravi"},
                       ["art","coding","music","travel"],
                       {"language":"golang"},
                       {"experience":"no"}
                     ]

Still, I am getting few compilation errors which I am not able to find out.

  • 写回答

2条回答 默认 最新

  • dougu5950 2015-10-09 06:52
    关注

    What you're asking for is possible -- playground link:

    package main
    
    import "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)
    }
    

    But you probably don't want to be doing this. You're fighting the type system, I would question why you're using Go if you were doing it like this. Consider leveraging the type system -- playground link:

    package main
    
    import "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)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题