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

如何在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 streamingtool
  • ¥15 MATLAB图像问题
  • ¥20 树莓派5做人脸情感识别与反馈系统
  • ¥15 selenium 控制 chrome-for-testing 在 Linux 环境下报错 SessionNotCreatedException
  • ¥15 使用pyodbc操作SQL数据库
  • ¥15 MATLAB实现下列
  • ¥30 mininet可视化打不开.mn文件
  • ¥50 C# 全屏打开Edge浏览器
  • ¥80 WEBPACK性能优化
  • ¥30 python拟合回归分析