【问题标题】:How to recreate perl's array of hashes in golang?如何在 golang 中重新创建 perl 的哈希数组?
【发布时间】:2019-01-30 15:17:47
【问题描述】:

在 perl 中,我可以将 $hashref 推送到 @array 并将这些数据用于下一个 foreach 和可能的 encode_json (HTTP POST)。

我不知道如何在 golang 中重新创建相同的登录?

$VAR1 = [
      {
        'address' => 'test.com',
        'id' => 101,
        'hostgroups' => [
                          zero
                          'one',
                          'or many'
                        ],
        'host_name' => 'test.com',
        'alias' => 'test.com',
        'template' => 'generic',
        'file_id' => 'etc/config'
      },
      {
        'address' => 'test2.com',
        'id' => 102,
        'hostgroups' => [
                          zero
                          'one',
                          'or many'
                        ],
        'host_name' => 'test2.com',
        'alias' => 'test2.com',
        'template' => 'generic',
        'file_id' => 'etc/config'
      },
      (..)

【问题讨论】:

  • Go 有数组,尽管你通常使用切片。 Go 的哈希称为映射。没有理由不能创建地图数组或数组地图。参加 Go 之旅以了解基础知识:tour.golang.org
  • 似乎类似的问题是already answered
  • 您可以将哈希映射放入数组中,只要记住 Perl 是少数支持自动激活的语言之一(如果不是唯一的话)。所以,如果你希望有一个动态散列来改变它的结构并在 golang 中复制它,那是行不通的。
  • 谢谢大家!输入 host map[string]interface{} 和 var hosts []host 它是。我总是搜索所有可能的帖子,但昨天对我来说有点慢。

标签: perl go


【解决方案1】:
var array = []map[string]interface{}{
    {"address": "test.com", "hostgroups": []string{"zero", "one", "or many"}, "id": 101},
    {"address": "test2.com", "hostgroups": []string{"zero", "one", "or many"}, "id": 102},
}

【讨论】:

    【解决方案2】:

    这就是答案。

    type host map[string]interface{}
    
    var hosts []host
    
    h := host{
        "id":         id,
        "file_id":    "etc/config/hosts.cfg",
        "host_name":  host_name,
        "alias":      host_name,
        "address":    host_name,
        "hostgroups": hg,
        "template":   "generic-host",
    }
    
    hosts = append(hosts, h)
    

    【讨论】:

      猜你喜欢
      • 2011-04-20
      • 2014-04-13
      • 2011-05-08
      • 2011-04-21
      • 2018-04-11
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      相关资源
      最近更新 更多