嵌套Golang对象的初始化
比如有这样一个对象:
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对象的初始化的更多相关文章
- 解析Java类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...
- java中类的初始化和对象的初始化
静态的属于全局静态区,这个部分独立存在,不管是成员还是块,都是静态的,大家地位相等,先到先得. 然后是成员初始化,这个部分在类的构造函数前初始化,因为编译器(或者设计者)可能认为构造函数调用了这个成员 ...
- ios中属性和对象的初始化
属性和对象的初始化为了方便记忆, 我们可以都使用self.来初始化. 这样可以避免内存的过度释放.
- [C#解惑] #2 对象的初始化顺序
谜题 在上一篇C#解惑中,我们提到了对象的初始化顺序.当我们创建一个子类的实例时,总是会先执行基类的构造函数,然后再执行子类的构造函数.那么实例字段是什么时候初始化的呢?静态构造函数和静态字段呢?今天 ...
- JAVA基础之对象的初始化
本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...
- [百度空间] [转] 在 Visual C++ 中控制全局对象的初始化顺序
from: http://blog.csdn.net/classfactory/archive/2004/08/07/68202.aspx 在 C++ 中,同一个翻译单位(.cpp文件)里的全局对象的 ...
- C++:对象的初始化和构造函数
对象的初始化和构造函数 构造函数:是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化.构造函数 的名字必须与类名相同,它不要用户来调用,而是在建立对象时自动执行的 形式一: 类名 对象名(实参 ...
- Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)
反射技术其实就是动态加载一个指定的类,并获取该类中的所有内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员,简单来说:反射技术可以对一个类进行解剖,反射大大增强 ...
- 重新开始学习javase_对象的初始化
一.类加载机制 类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用.卸载7的阶段: 加载.验证.准备.初始化和卸载这5个阶段的顺序是 ...
随机推荐
- kali linux之Bdfproxy
Bdfproxy(mitmproxy) 基于流量劫持动态注入shellcode(arp欺骗,dns欺骗,流氓ap) 步骤: 开启流量转发---------sysctl -w net.ipv4.ip_f ...
- codis__使用注意事项
codis 不支持批量的命令, codis对 redis-server 的最低版本要求是 2.8.13
- win10环境下搭建虚拟环境和 virtualenvwrapper-win 使用
1. 安装 virtualenv pip install virtualenv 2. virtualenv基本操作 cd path/dir # 跳转到dir目录 virtualenv env # 在d ...
- 为什么int类型的数据可以存储超过9999?
int占4字节,4*8=32位,10进制取值范围为 (-2^31-1)~(2^31-1):-2147483648~2147483647 package test; public class test1 ...
- POJ1591 M*A*S*H (JAVA)
这水题,真的坑 测试数据最后有空行,如果用sc.hasNextLine()判断,会RE 要改为sc.hasNext() 搞了我一上午,烦死 import java.util.*; public cla ...
- 对csrf的理解
用户浏览并登陆信任网站A 通过验证,在用户浏览器产出A的cookie 用户在没有登出A的情况下访问攻击网站B B要求访问第三方站点A,发出一个请求 根据B的请求,浏览器带着A的cookie访问A A不 ...
- angular5新增全局的模块
比如新增一个全局的swiper,需要在webpack中配置: 之后在代码中就可以用了
- python高级(三)—— 字典和集合(泛映射类型)
本文主要内容 可散列类型 泛映射类型 字典 (1)字典推导式 (2)处理不存在的键 (3)字典的变种 集合 映射的再讨论 python高级——目录 文中代码均放在github上:https://git ...
- JQuery.Validate学习笔记
JQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...
- Python学习 day09
一.文件的修改 python中修改文件,可以直接通过write实现,但这种方法均比较局限.若有需求:将文件中的某内容替换为新内容,其他内容保持不变.这种需求write理论上是可以实现的,可以将一个文件 ...