Go-unsafe unsafe主要用在外部的C程序库进行交互。不安全指针unsafe.Pointer() 把它的地址拿出来之后,我们就可以把它转换为任何类型的指针,但是要注意这种转换是非常非常危险,只能用在同类型间,不同类型直接不要用。atomic.StorePointer() 用来将数据存放到一个 unsafe 指针变量里面。atomic.LoadPointer() 用来从 unsafe 指针变量里面读取数据。
Go-反射编程 反射类型:reflect.TypeOf()反射值:reflect.Value()reflect.ValueOf() 只会返回一个值;reflect.TypeOf()可以返回两个值,第二个值可以用来判断这个值有没有。kind() 可以对反射回来的类型做判断值。reflect.TypeOf(s).FieldByName("Name");调用 reflect.ValueOf(s).FieldByName() 方法,必须是结构体进行调用。调用 reflect.ValueOf(&s).MethodB
Go-单元测试 单元测试,表格测试,go test -v -cover,stretchr/testify/assert,Benchmark,b.ResetTimer( ) 和 b.StopTimer() ,go test -bench=. ,go test -bench=. -benchmen,smartystreets/goconvey,$GOPATH/bin/goconvey