比如有这样一个对象:

type ProductConfig struct {
    Site map[string]string
}

对应的初始化可以如下写:

var pc ProductConfig
pc = ProductConfig{Site: map[string]string{"rakuten": "http://item.rakuten.co.jp/auc-trustgift/10079213/",
    "tmail": "http://detail.tmall.hk/hk/item.htm?spm=a230r.1.14.10.tCoYIo&id=41304819572&ad_id=&am_id=&cm_id=140105335569ed55e27b&pm_id=&abbucket=6"}}

需要注意的几点:

  • 其中的成员变量幅值不用“”括起来。
  • 内部变量类型,需要指明,类似这里的 map[string]string。

继续复杂点的:

对象:

type tomlConfig struct {
    CrawlerSource map[string]ProductConfig
}

type ProductConfig struct {
    Site map[string]string
}

初始化赋值代码如下:

toml := tomlConfig{CrawlerSource: map[string]ProductConfig{
    "1": ProductConfig{Site: map[string]string{"rakuten": "http://item.rakuten.co.jp/auc-trustgift/10079213/",
        "tmail": "http://detail.tmall.hk/hk/item.htm?spm=a230r.1.14.10.tCoYIo&id=41304819572&ad_id=&am_id=&cm_id=140105335569ed55e27b&pm_id=&abbucket=6"}},
    "2": ProductConfig{Site: map[string]string{"rakuten": "http://item.rakuten.co.j",
        "tmail": "http://detail.tmall.hk/hk/item.htm?spm=a2"}},
}}

 

再复杂一点的对象:

type tomlConfig struct {
    CrawlerSource map[string]ProductConfig
}

type ProductConfig struct {
    Name string
    Site map[string]string
}

对应的初始化

toml := tomlConfig{CrawlerSource: map[string]ProductConfig{
    "1": ProductConfig{
        Name: "测试1",
        Site: map[string]string{"rakuten": "http://item.rakuten.co.jp/auc-trustgift/10079213/",
            "tmail": "http://detail.tmall.hk/hk/item.htm?spm=a230r.1.14.10.tCoYIo&id=41304819572&ad_id=&am_id=&cm_id=140105335569ed55e27b&pm_id=&abbucket=6"}},
    "2": ProductConfig{
        Name: "郭红俊",
        Site: map[string]string{"rakuten": "http://item.rakuten.co.j",
            "tmail": "http://detail.tmall.hk/hk/item.htm?spm=a2"}},
}}

嵌套Golang对象的初始化的更多相关文章

  1. 解析Java类和对象的初始化过程

    类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...

  2. java中类的初始化和对象的初始化

    静态的属于全局静态区,这个部分独立存在,不管是成员还是块,都是静态的,大家地位相等,先到先得. 然后是成员初始化,这个部分在类的构造函数前初始化,因为编译器(或者设计者)可能认为构造函数调用了这个成员 ...

  3. ios中属性和对象的初始化

    属性和对象的初始化为了方便记忆, 我们可以都使用self.来初始化. 这样可以避免内存的过度释放.

  4. [C#解惑] #2 对象的初始化顺序

    谜题 在上一篇C#解惑中,我们提到了对象的初始化顺序.当我们创建一个子类的实例时,总是会先执行基类的构造函数,然后再执行子类的构造函数.那么实例字段是什么时候初始化的呢?静态构造函数和静态字段呢?今天 ...

  5. JAVA基础之对象的初始化

    本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...

  6. [百度空间] [转] 在 Visual C++ 中控制全局对象的初始化顺序

    from: http://blog.csdn.net/classfactory/archive/2004/08/07/68202.aspx 在 C++ 中,同一个翻译单位(.cpp文件)里的全局对象的 ...

  7. C++:对象的初始化和构造函数

    对象的初始化和构造函数 构造函数:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化.构造函数 的名字必须与类名相同,它不要用户来调用,而是在建立对象时自动执行的 形式一: 类名 对象名(实参 ...

  8. Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)

    反射技术其实就是动态加载一个指定的类,并获取该类中的所有内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员,简单来说:反射技术可以对一个类进行解剖,反射大大增强 ...

  9. 重新开始学习javase_对象的初始化

    一.类加载机制 类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用.卸载7的阶段: 加载.验证.准备.初始化和卸载这5个阶段的顺序是 ...

随机推荐

  1. nginx下重写隐藏index.php文件

    location / { root /项目目录/; index index.php; if (-f $request_filename/index.php){ rewrite (.*) $1/inde ...

  2. 搭建USB摄像头转RTSP服务器的多种方法

    USB摄像头与网络摄像头相比,可选择范围广.种类多.成本低,但是实际使用时需要通过rtsp流来访问,起到直播的效果,因此在摄像头采集终端上构建rtsp流媒体服务器,将USB摄像头数据转化为rtsp,可 ...

  3. Maven web项目(简单的表单提交) 搭建(eclipse)

    我们将会搭建一个,基于Maven管理的,具有简单的表单提交功能的web项目,使用DAO--service--WEB三层结构,服务器使用Tomcat 1 项目基本结构的搭建 左上角File---> ...

  4. excel批量中英翻译单元格

    英 ==> 中 =FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&H1&&q ...

  5. Python中的正斜杠/与反斜杠\

    知识点: 1. "/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠 2. 对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠\. ...

  6. python四则运算2.0

    github项目地址: https://github.com/kongkalong/python PSP 预估耗时(分钟) Planning .Estimate 48*60 Development . ...

  7. python迭代、可迭代对象、迭代器及生成器

    迭代 通常意义上的迭代是指:重复执行一系列运算,从前面的量依次推出后面的量的过程,每一次迭代的结果,会作为下一次迭代的初始值. 在c.c++.java等编程语言中的for循环语句,就是一个迭代过程,例 ...

  8. 【车联网系统】基于Python实现的现网全自动化测试方案

    前面写了几篇基于CANoe实现的仿真测试台架,属于半自动化测试方案.现出一个Python实现的车联网系统全自动化测试方案. 目录结构 1.-----------------------车联网系统组成 ...

  9. 使用Maven运行测试提示Module sdk 1.5的解决方法

    解决方法: 1. 配置Project Structure 2. 在MAVEN_HOME/conf/setting.xml中添加profile 3. 在Maven项目的pom.xml文件里添加标签 三种 ...

  10. maven打包时跳过测试类

    记录 修改pom.xml文件 <project> [...] <build> <plugins> <plugin> <groupId>org ...