It has only to do with the act of correct observation, and by I mean a physical contact with all sorts of objects through all the senses

Golang 一段代码性能的探究

golang concurrence performance

我们来看下面这样的一段代码 var arr []int64 func IncrArrItem(s, e int) { for i = 0; i < 200000000; i++ { arr[s]++ arr[e]++ } } Shell 这个代码的作用是对的数组中的第 s 和 e 位

Golang 空结构体

go empty struct

空结构体是指一个 struct 里不包含任何字段 type A struct{} 它的宽度是0,占用 0 字节的内存 unsafe.Sizeof(s) // 0 由纯空结构体组成的对象也不会占用内存空间 type A struct { B struct{} C struct{} } //

golang 指针操作

golang pointer operation

在 go 语言中每个变量都有自己的地址,记录变量地址的类型称为指针类型 & 获取变量的地址,生成一个 *T 的指针类型指向取值变量 x x 必须是可以寻址的 * 获取指针指向的值 如果指针是 nil 会 panic 如果变量不是指针类型会报编译错误 invalid operation canno

Golang 调度器

golang scheduler

https//www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html https//docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw/edi

GO JSON 的序列化与反序列化

golang json marshal and unmarshal

在 Golang 中对于 json 的序列化和反序列化的控制大概有三种方式\n在默认的 JSON TAG 加上控制标签\n实现MarshalJSON() ([]byte, error)和UnmarshalJSON(b []byte) error 覆盖默认的 JSON 序列化和反序列化方法\n利用反射解析

Gorm 中 Scan 和 Find 的区别

the difference of Gorm scan and find

我们可以先看 Scan 和 Find 在 Gorm 中的接口定义\nFInd\n// gorm/finisher_api.go\n// Find find records that match given conditions\nfunc (db *DB) Find(dest interface{}, c

Gorm 改造指针对象

gorm object support pointer

最近项目中正好用到 Gorm 在使用 Gorm 的过程中发现在进行对象查询的时候不支持指针。具体的文档如下:\n如果我们强行使用指针进行查询代码如下:\nvar user *User\n// doesn't work\ndb.First(&user)\n\nGo\n会得到 \"invalid value\" 的错误\n