Golang读书笔记
文章平均质量分 62
类C语言特性
粪逗er
努力的人运气不会差
展开
-
知识体系之Golang
go数据结构+常见错误原创 2022-09-26 17:56:44 · 2909 阅读 · 0 评论 -
Go内存逃逸
内存逃逸原创 2022-09-25 17:30:26 · 311 阅读 · 0 评论 -
Go goroutine泄露的原因
协程泄露原创 2022-09-25 17:18:29 · 562 阅读 · 0 评论 -
Golang中的GC回收机制:三色标记与混合写屏障
GC原创 2022-09-25 11:24:52 · 2429 阅读 · 3 评论 -
GMP模型
GMP原创 2022-09-24 11:17:02 · 3891 阅读 · 0 评论 -
vscode+golang 高效编码
1. 快捷键设置vscode:只需要设置【前进、后退】{ "tabnine.experimentalAutoImports": true, "bracketPairColorizer.depreciation-notice": false, "window.zoomLevel": 1, "editor.fontSize": 14, // 单元测试: t.Log(xxx) "go.buildFlags": [ "-v" ],原创 2022-03-27 14:37:59 · 2283 阅读 · 0 评论 -
Golang常用逻辑
errgroup:https://github.com/go-kratos/kratos/blob/v1.0.x/pkg/sync/errgroup/doc.gopackage mainimport ( "GoRedis/pkg/errgroup" "GoRedis/pkg/str" "context" "fmt" "math/rand" "sync" "time")// chapter-1: 构造函数,"有选择"的初始化成员变量type sexType intconst原创 2022-03-26 18:56:28 · 824 阅读 · 0 评论 -
golang每日一库
cron定时器https://segmentfault.com/a/1190000023029219原创 2021-08-08 20:13:15 · 347 阅读 · 0 评论 -
Golang操作SQL: 增删改查
sql编码注意事项1. 采用占位符的方式,防止sql注入,尽可能避免使用字符串拼接连接*tmpDB, err = sql.Open("mysql", connUrl)查询特殊错误码 err == sql.ErrNoRowsQueryRow()rowTotal := getDBConn().QueryRow(sqlTotalStr, whereArgs...)err = rowTotal.Scan(&stRsp.ITotal)if err != nil {..原创 2021-08-07 23:02:02 · 525 阅读 · 0 评论 -
vscode配置(关键字/变量名/函数名)等颜色
code .vscode/settings.json{ "editor.tokenColorCustomizations": { // "keywords": "#fa0303", // 关键字 // "variables": "#fa0303", // 变量名 "functions": "#fa0303", // 函数名s // "strings": "#ffffff", // 字符串原创 2021-05-21 15:33:40 · 10722 阅读 · 0 评论 -
Golang -- 空接口interface{} -- 类型转换x.(type)
已知,空接口可以表示/接收任意类型,因此,空接口可以转换为预期的类型,以下介绍两种使用方法将变量x,转换为指定类型/* * 变量x,转换为指定类型,结果保存在y中 * @return ok 转换成功/失败 * y 转换后,x保存在y中 */y, ok = x.(具体类型)断言变量x的类型是什么/* * 判断x的类型是什么,必须结合switch...case...一起使用 */y, ok = x.(type)示例代码package原创 2021-04-29 10:18:36 · 2206 阅读 · 0 评论 -
Golang--构造函数--设计模式--函数式选项
本文通过案例介绍【函数式选项设计模式】package mainimport "fmt"type Student struct { name_ string age_ int}// 编写: 传统的构造函数func newStudent1(name string, age int) *Student { return &Student{ name_: name, age_: age, }}/**** 下面介绍新版构造函数的写法 ****//* 解决2个问题原创 2021-04-28 17:17:50 · 287 阅读 · 0 评论 -
Golang--反射--reflect
反射 reflect反射是指程序运行期间对程序本身进行访问和修改的能力。⇒ 程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息支持反射的语言,可以在程序编译期间将变量的反射信息,如:字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期间获取类型的反射信息,并且有能力修改它们。概括为一句话:反射就是在运行时动态的获取一个变量的类型信息和值信息1. reflect.Typeof获得任意值的原创 2021-04-28 10:44:21 · 501 阅读 · 0 评论 -
Golang--包--fmt/time/flag/sort
写在最前:包package一个文件夹下面只能有一个包,同样一个包的文件不能在多个文件夹下包名可以不和文件夹的名字一样,包名不能包含-符号如果想在一个包中已用另一个包中的标识符(变量、常量、类型、函数),该标识符必须是对外可见的(public)。在Go语言中将标识符的首字母大写就可以让标识符对外可见了package pkgimport "fmt"var a = 100 // 首字母小写,外部包不可见,只能在当前包内使用const Mode = 1 // 首字母大写,外部包课件,可在其他包中原创 2021-04-28 10:40:03 · 540 阅读 · 0 评论 -
Golang--详解Context
1-Context 应用场景①上层任务取消后,所有的下层任务都会被取消;②中间某一层的任务取消后,只会将当前任务的下层任务取消,而不会影响上层的任务以及同级任务。业务需要对访问的数据库,RPC ,或API接口,为了防止这些依赖导致我们的服务超时,需要针对性的做超时控制为了详细了解服务性能,记录详细的调用链Log2-Context 原理Context 的调用应该是链式的,从Context 派生出新的子类:WithCancel、WithDeadline/WithTimeout、WithValu原创 2021-04-27 19:47:55 · 758 阅读 · 0 评论 -
Golang--实战开发配置--Goland(git / ftps / SSH / 快捷键)
文章目录1. Goland安装2. 配置git blame开发工具3. 安装shellcheck1. Goland安装下载+安装: Go 安装包备注:安装后,记得配置环境变量下载 + 安装: Goland集成开发工具2. 配置git blame开发工具打开 File -> Settings -> Version Control -> Git,在 Path to Git executable 处选择 git 的安装位置备注:配置完成之后,点击【Test】按钮,如果成功,原创 2021-04-26 12:47:06 · 6530 阅读 · 1 评论 -
Golang--并发编程--goroutine/channel/select/sync(WaitGroup/Once/Map)
写在最前Go语言的并发通过goroutine实现:OS线程是由OS内核来调度的,goroutine则是由Go运行时(runtime)自己的调度器(GPM)调度的G很好理解,就是个goroutine的,里面除了存放本goroutine信息外,还有与所在P的绑定等信息。P管理着一组goroutine队列,P里面会存储当前goroutine运行的上下文环境(函数指针,堆栈地址及地址边界),P会对自己管理的goroutine队列做一些调度(比如把占用CPU时间较长的goroutine暂停、运行后续的g原创 2021-04-26 11:03:02 · 386 阅读 · 0 评论 -
Golang--基础精讲(一文看懂Golang基本用法)
关键字var:变量声明var 变量名 变量类型变量名 := 变量值const:常量,代表永远只读,不能修改(bool、数值、string)type:声明自定义类型type add_func func(int, int) inttype People struct { name string age int}range:读取slice、map、channelfallthrough1.加了fallthrough后,会直接运行【紧跟的后一个】case或default语原创 2021-04-22 17:18:43 · 2746 阅读 · 2 评论