源码
文章平均质量分 67
一闪一闪满天星
总有人仰望星空
展开
-
深入理解golang channel
channel详解CSP模型go语言的并发是基于CSP并发模型实现的。golang的并发哲学:Do not communicate by sharing memory; instead, share memory by communicating。channel主要用于在多个goroutine之间进行通信。channel是并发安全的。channel的使用方法:var ch chan int // 声明一个int类型的channel,不进行初始化var ch = make(chan int)原创 2021-05-19 22:02:06 · 253 阅读 · 1 评论 -
golang接口interface类型断言的补充说明
接口类型断言补充空接口断言示例:type User struct { name string}func main() { var a interface{} a = User{name: "hello"} val, ok := a.(int) if ok { fmt.Println("is int", val) } else { fmt.Println("not int") }}打印汇编信息:go tool compile -S -N -l main.go >原创 2021-05-19 21:59:42 · 429 阅读 · 0 评论 -
深入理解golang接口interface
Golang interface详解interface在go语言中,interface有两种用法。第一种是空接口,代表任意类型,空接口也可以理解为没有任何要求的接口类型,也可以说所有的类型都实现了空接口。另一种是有方法的接口,在接口中定义一系列方法,一个类型如果实现了这些方法,那么我们就说这个类型实现了这个接口。接口声明空接口:var any interface{}any = 1 any = trueany = "hello"带方法的接口:类型不需要显式声明它实现了某个接口:接口原创 2021-05-19 21:58:32 · 1200 阅读 · 0 评论 -
深入理解golang string
golang stringstring的定义// string is the set of all strings of 8-bit bytes, conventionally but not// necessarily representing UTF-8-encoded text. A string may be empty, but// not nil. Values of string type are immutable.type string stringstring里存储的是字符原创 2021-05-19 21:57:26 · 1256 阅读 · 1 评论 -
go语言实现定时器-time
go time包定时器golang的time包的Timer和Ticker都可以实现定时功能,两者的区别是Timer用于定时执行一次的任务,Ticker用于循环定时执行多次任务。Stop用于关闭定时器,在关闭后,将不会往定时器发送信息。官方描述:Stop不会关闭通道t.C,以避免从该通道的读取不正确的成功。基本用法package mainimport ( "fmt" "time"...原创 2020-04-30 17:58:04 · 816 阅读 · 0 评论 -
gin源码-ShouldBindQuery
Bind原创 2020-04-27 20:11:18 · 4778 阅读 · 1 评论