## golang```go 是编译性语言。编译之后,在机器上运行机器码。编译之后,脱离依赖,所有依赖都打包到一个可执行文件。go 最小的共享单位是 包go 以包组织代码package main 编译出来的是一个可执行文件go 的字符串,只能是双引号包裹。go 的 {} 必须在行末```## 设置环... ...
分类:
其他好文 时间:
2019-01-09 15:46:59
阅读次数:
204
1、示例 #执行结果: 示例2: #执行结果: ...
分类:
其他好文 时间:
2018-12-30 15:11:33
阅读次数:
156
package package是最基本的分发单位和工程管理中依赖关系的体现; 源文件开头需要声明package; 要生成可执行程序,要有package main 和 main函数; 同一个路径要只能有一个package import 原理: import 导入,是按顺序导入; 导入包中含有其他依赖包 ...
分类:
其他好文 时间:
2018-12-01 17:03:53
阅读次数:
147
位运算: & 与 | 或 ! 非 ^ 异或 &^ ( 表达式z = x &^ y结果z 如果对应y中bit位为1的话,z的bit位为0,否则对应的bit位等于x相应的bit位的值,按y置零x。 ) 死循环: for { fmt.Println(1) } 条件循环: for a<5 { fmt.Pri ...
分类:
其他好文 时间:
2018-11-26 20:03:45
阅读次数:
219
worker pool简介 worker pool其实就是线程池thread pool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。 在线程池模型中, 有2个队列一个池子:任务队列、已完成任务队列和线程池 。其中已完成任务队列可能存在也可能不存在,依据实际需 ...
分类:
其他好文 时间:
2018-11-22 23:58:15
阅读次数:
290
当关闭一个channel时,会使得这个channel变得可读。通过这个特性,可以实现一个goroutine执行顺序的技巧。 如果一个goroutine A依赖于另一个goroutine B,在goroutine A中首先通过读goroutine B来阻塞自己,直到goroutine B关闭自身之后, ...
分类:
其他好文 时间:
2018-11-21 15:50:58
阅读次数:
307
channel基础 channel用于goroutines之间的通信,让它们之间可以进行数据交换。像管道一样,一个goroutine_A向channel_A中放数据,另一个goroutine_B从channel_A取数据 。 channel是指针类型的数据类型,通过make来分配内存。例如: 这表示 ...
分类:
其他好文 时间:
2018-11-20 00:10:29
阅读次数:
131
接口用法简介 接口(interface)是一种类型,用来定义行为(方法)。 但这些行为不会在接口上直接实现,而是需要用户自定义的方法来实现。所以,在上面的Namer接口类型中的方法 都是没有实际方法体的,仅仅只是在接口Namer中存放这些方法的签名( )。 当用户自定义的类型实现了接口上定义的这些方 ...
分类:
其他好文 时间:
2018-11-10 23:54:03
阅读次数:
200
接口类型探测:类型断言 接口实例中存储了实现接口的类型实例,类型的实例有两种:值类型实例和指针类型实例。在程序运行过程中,接口实例存储的实例类型可能会动态改变。例如: 所以,需要一种探测接口实例所存储的是值类型还是指针类型。 探测的方法是: 和`ins.( Type)`。它们有两个返回值,第二个返回 ...
分类:
其他好文 时间:
2018-11-02 02:04:09
阅读次数:
203
struct的导出和暴露问题 关于struct的导出 struct的属性是否被导出,也遵循大小写的原则:首字母大写的被导出,首字母小写的不被导出。 所以: 1. 如果struct名称首字母是小写的,这个struct不会被导出。连同它里面的字段也不会导出,即使有首字母大写的字段名 。 2. 如果str ...
分类:
其他好文 时间:
2018-11-01 11:42:55
阅读次数:
108