unsafe主要用在外部的C程序库进行交互。不安全指针unsafe.Pointer() 把它的地址拿出来之后,我们就可以把它转换为任何类型的指针,但是要注意这种转换是非常非常危险,只能用在同类型间,不同类型直接不要用。atomic.StorePointer() 用来将数据存放到一个 unsafe 指针变量里面。atomic.LoadPointer() 用来从 unsafe 指针变量里面读取数据。
2021-07-16 01:09:10
225
反射类型:reflect.TypeOf()反射值:reflect.Value()reflect.ValueOf() 只会返回一个值;reflect.TypeOf()可以返回两个值,第二个值可以用来判断这个值有没有。kind() 可以对反射回来的类型做判断值。reflect.TypeOf(s).FieldByName("Name");调用 reflect.ValueOf(s).FieldByName() 方法,必须是结构体进行调用。调用 reflect.ValueOf(&s).MethodB
2021-07-15 22:44:07
482
单元测试,表格测试,go test -v -cover,stretchr/testify/assert,Benchmark,b.ResetTimer( ) 和 b.StopTimer() ,go test -bench=. ,go test -bench=. -benchmen,smartystreets/goconvey,$GOPATH/bin/goconvey
2021-07-13 21:39:37
332
sync.Once.Do(),仅需任意任务完成,所有任务都完成,buffered channel 实现对象池,数据库连接池,sync.pool
2021-07-08 23:18:43
270
Context.Backgroupd(),context.WithCancel()
2021-07-07 21:32:41
680
任务的取消,实现原理,如何判断,代码示例
2021-06-30 23:01:34
529
Go不关闭channel会怎样,channel 的关闭,channel关闭的特点
2021-06-30 22:10:48
545
select多路选择机制,超时控制,time.After()
2021-06-28 22:00:46
189
CSP,CSP VS Actor,channel,buffer channel
2021-06-28 01:04:01
460
并发控制,线程安全,WaitGroup
2021-06-27 11:57:56
613
一、线程VS协程,Go 的调度机制,Go协程的使用
2021-06-27 10:43:51
1031
Go依赖管理,vender 路径,glide
2021-06-27 00:06:00
938
在 GOPATH 下查包,在 GOMOD 下查包,多个init 方法,go get 拉取远程,提交自己的 package 到 github
2021-06-26 12:32:34
1167
Go的错误处理机制,error 接口,预制错误,os.Exit、panic 和 recover
2021-06-24 21:38:52
261
一、Go的拓展与复用, Go不支持继承,支持多肽
2021-06-22 21:07:49
210
一、Go 接口,Duck type 式接口实现,接口定义,接口实现,与其它主要编程语言的差异,空接口与断言,Go接口最佳实践
2021-06-20 19:08:59
212
一、行为的定义和实现,封装数据, 实例的创建和初始化,行为方法的创建和定义
2021-06-20 19:04:18
285
与其它主要编程语言的差异,slice、map、channel 会有传引用的错觉,函数可以有多个返回值,函数作为参数值和返回值,自定义类型,可变长参数和defer延迟执行函数
2021-06-19 10:54:16
263
Go的string与其它主要编程语言的差异, Unicode和UTF8的区别,常用的字符串处理函数
2021-06-18 22:53:06
446
Map声明,Map元素的访问,Map 遍历,Map与工厂模式,用Map实现Set
2021-06-16 22:13:34
523
基本数据类型,类型转换,类型的预定义值,指针类型
2021-06-15 22:59:49
212
2
1、数组的声明2、循环数组3、数组截取4、切片的内部结构5、声明切片6、切片的可变长原理7、切片共享存储结构8、数组和切片的异同
2021-06-10 23:25:05
196
for循环,if 条件,switch 条件
2021-06-09 23:24:49
323
2
算数运算符,比较运算符,逻辑运算符,位运算符,按位清零
2021-06-08 22:39:56
468
1、把已有的项目代码拉入git管理2、新建的项目直接用 Git 管理
2021-06-01 22:41:16
43
配置 user.name 和 user.email,config作用域
2021-06-01 22:12:35
5025
字面常量、常量定义、预定义常量、枚举
2021-03-23 00:50:58
161
1
变量声明,变量初始化,变量赋值,匿名变量
2021-03-02 20:53:31
138
Go语言的package,import,func使用说明
2021-03-02 20:41:45
333