Fork me on GitHub

随笔分类 -  Go

摘要:Go WaitGroup源码解析 结构体 type WaitGroup struct { noCopy noCopy state1 [3]uint32 } 其中state1代表三个字段:counter, waiter, sema counter:计数器,每次经过wg.Add(X)或者wg.Done( 阅读全文
posted @ 2022-04-13 09:45 小傅啊 阅读(188) 评论(0) 推荐(0)
摘要:Golang 时间转换的那些事 在项目的开发过程中遇到的一个很有意思的时间转换问题 例子 假设有一个需求,是从数据库获取到了一个时间,然后需要把时间延后一天,再返回时间戳 得到伪代码 t := "2022-03-08 23:59:59" expireTime, _ := time.Parse("20 阅读全文
posted @ 2022-03-15 17:07 小傅啊 阅读(511) 评论(0) 推荐(0)
摘要:Golang sync.Map大白话解析 代码解析链接:https://mp.weixin.qq.com/s/H5HDrwhxZ_4v6Vf5xXUsIg 建议对照参考链接代码食用 结构体 可以简单理解为:sync包中的Map结构体里面有两个map,分别是read和dirty,read和dirty的 阅读全文
posted @ 2022-03-07 11:09 小傅啊 阅读(724) 评论(0) 推荐(0)
摘要:Go select 死锁引发的思考 https://mp.weixin.qq.com/s/Ov1FvLsLfSaY8GNzfjfMbg一文引发的延续思考 上文总结 总结一 package main import ( "fmt" ) func main() { ch := make(chan int) 阅读全文
posted @ 2022-03-02 11:49 小傅啊 阅读(260) 评论(0) 推荐(0)
摘要:Golang的GC回收机制 GC触发的条件 阈值:默认内存扩大一倍,启动gc 定期:默认2min触发一次gc,src/runtime/proc.go:forcegcperiod 手动:runtime.gc() v1.3版本 标记清除法 第一步,找出不可达的对象,做上标记。 第二部,回收没有被标记的对 阅读全文
posted @ 2022-03-01 16:20 小傅啊 阅读(370) 评论(0) 推荐(0)
摘要:Go切片全解析 目录结构: 数组 切片 底层结构 创建 普通声明 make方式 截取 边界问题 追加 拓展表达式 扩容机制 切片传递的坑 切片的拷贝 浅拷贝 深拷贝 数组 var n [4]int fmt.Println(n) //输出:[0 0 0 0] n[0] = 1 n[3] = 2 fmt 阅读全文
posted @ 2022-02-23 09:36 小傅啊 阅读(342) 评论(0) 推荐(0)
摘要:Context包源码解析 Context就相当于一个树状结构 最后请回答一下这个问题:context包中的方法是线程安全吗? Context包中主要有一个接口和三个结构体 Context接口 type Context interface { Deadline() (deadline time.Tim 阅读全文
posted @ 2022-02-17 17:53 小傅啊 阅读(213) 评论(0) 推荐(0)
摘要:微服务版 ├── LICENSE.md ├── Makefile //在任何一个项目中都会存在一些需要运行的脚本,这些脚本文件应该被放到 /scripts 目录中并由 Makefile 触发 ├── README.md //描述项目的文件 ├── api //对外提供的各种不同类型的API接口定义文 阅读全文
posted @ 2022-02-11 16:40 小傅啊 阅读(932) 评论(0) 推荐(0)
摘要:Go基础知识梳理(三) 结构 type Person struct { name string sex int } func main() { //推荐写法 person := Person{ name: "张三", sex: 1, } //不推荐写法 person = Person{"李四", 1 阅读全文
posted @ 2022-01-31 13:51 小傅啊 阅读(127) 评论(0) 推荐(0)
摘要:Go代码规范(Code Review) 总结几个开发过程中经常会犯的代码规范错误 参考链接:https://learnku.com/go/wikis/48375 注释语句 // Request 表示运行命令的请求。 type Request struct { ... // Encode 将 req 阅读全文
posted @ 2022-01-26 17:45 小傅啊 阅读(244) 评论(0) 推荐(0)
摘要:Go基础知识梳理(二) 简单函数的定义 //有参数有返回值 func sum(a int, b int) int { return a + b } //无返回值 func sum(a int, b int) {} //无参数无返回值 func sum(){} //返回多个值 func sum(a i 阅读全文
posted @ 2022-01-25 14:06 小傅啊 阅读(137) 评论(0) 推荐(0)
摘要:Go之Logrus用法入门 Logrus是Go (golang)的结构化日志程序,完全兼容标准库的API日志程序。 Logrus is a structured logger for Go (golang), completely API compatible with the standard l 阅读全文
posted @ 2022-01-21 12:06 小傅啊 阅读(1185) 评论(0) 推荐(0)
摘要:Go基础知识梳理(一) Go中package的用法及作用 package hello 用于分包,Go通过包来管理命名空间 import ( "hello" //通过import关键字来使用包 ) Go中的25个关键字 break default func interface select case 阅读全文
posted @ 2022-01-14 12:01 小傅啊 阅读(105) 评论(0) 推荐(0)