摘要:
goconfig简介 goconfig是一个由Go语言开发的针对windows下常见的ini格式的配置文件解析器。该解析器在涵盖了所有ini文件操作的基础之上,又针对Go语言实际开发过程中遇到的一些需求进行了扩展。相对于其他ini文件解析器而言,该解析器最大的优势在于对注释的极佳支持;除此之外,支持 阅读全文
摘要:
并发concurrency 很多人都是冲着Go大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码解析来看,goroutine只是由官方实现的超级“线程池”而已。不过话说回来,每个实例4 5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造Go号称的高并发的根本原因。另外goroutine的 阅读全文
摘要:
反射reflection 反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地 反射使用TypeOf和ValueOf函数从接口中获取目标对象信息 反射会将匿名字段作为独立字段(匿名字段本质) 想要利用反射修改对象状态,前提是interface.data是settable,即poin 阅读全文
摘要:
接口interface 接口是一个或多个方法签名的集合 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这成为Structural Typing 接口只有方法声明,没有实现,没有数据字段 接口可以匿名嵌入其它接口,或嵌入到结构中 将对象赋值给接口时,会发生拷贝,而接 阅读全文
摘要:
方法method Go中虽没有class,但依旧有method 通过显示说明receiver来实现与某个类型的结合 只能为同一个包中的类型定义方法 receiver可以是类型的值或者指针 不存在方法重载 可以使用值或指针来调用方法,编译器会自动完成转换 从某种意义上来说,方法是函数的语法糖,因为re 阅读全文
摘要:
结构struct Go中的struct与C中的struct非常相似,并且Go没有class,代替了class的位置,但并没有代替class的功能 使用type struct{} 定义结构,名称遵循可见性规则 支持指向自身的指针类型成员 支持匿名结构,可用作成员或定义成员变量 匿名结构也可以用于map 阅读全文
摘要:
函数function Go函数不支持嵌套、重载和默认参数 但支持以下特性: 1. 无需声明原型 2. 不定长度变参 3. 多返回值 4. 命名返回值参数 5. 匿名函数 6. 闭包 定义函数使用关键字func,且左大括号不能另起一行 函数也可以作为一种类型使用 返回值及参数说明 不定长变参 函数类型 阅读全文
摘要:
map 类似其他语言中的哈希表或者字典,以key value形式存储数据 key必须是支持==或!=比较运算的类型,不可以是函数、map或slice map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 map使用make()创建,支持:=这种简写方式 make([keyType]val 阅读全文
摘要:
切片slice 其本身并不是数组,它指向底层的数组 作为变成数组的替代方案,可以关联底层数组的局部或全部 它的值为引用类型、 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 一般情况下使用make创建 如果多个slice指向相同底层数组,其中一个的值改变会影响全部 阅读全文
摘要:
数组Array 定义数组的格式:var [n], n 0 数组的长度也是类型的一部分,因此具有不同长度的数组为不同类型 注意区分指向数组的指针和指针数组 数组在Go中为值类型 数组之间可以使用 == 或 != 进行比较,但不可以使用 可以使用new来创建数组,此方法返回一个指向数组的指针 Go支持多 阅读全文