blog

github 账户管理

添加 SSH ke 到 github 账户 检查 .ssh 文件夹是否有密钥 ls ~/.ssh/ 没有的话生成密钥 ssh-keygen -t rsa -C "your_email@example.com" 添加 SSH key 到 ssh-agent # 后台启动 ssh-agent eval $(ssh-agent -s) # 添加 key ssh-add ~/.ssh/id_rsa 在 github 的个人设置中添加一个 ssh-key 也可

gitlab 踩坑

cache 使用 gitlab 的 CI/CD 时,将项目的 runner 设置为 group-runner 若同一个 pipeline 中的 stage 之间共享的 cache 依赖于同一个 runner,所以要保证同一个 pipeline 使用的是一个 runner 可以定义基类的 job

go 互斥锁

sync.Mutex sync.Mutex 互斥:保证每次只有一个 goroutine 可以访问一个共享的变量 go 标准库提供 sync.Mutex 互斥锁类型及两个方法: Lock 和 Unlock 在代码前调用 Lock,在代码后调用 Unlock 保证这段代码

go 函数

函数 function 函数用法 函数值 匿名函数 可变函数 variadic function 方法 vs 函数 方法的值接收者 vs 函数的值参数 方法的指针接收者和函数的指针参数 函数 function 函数是基本的代码块,用于

go 切片

slice slice 长度和容量 append 追加到 slice copy 对 slice 拷贝 对 slice 切片 slice vs array 创建 array 和 slice 切片底层是数组 使用 make 函数创建 slice slice 内存储 slice 内存优化 slice 切片是对数组的抽象,是一种“动态

go 包

package 默认导入 导出包内标识符 导入包的重命名 Go 编译速度快 导入匿名包 包的初始化入口 init 内部包 包的文档化 package package pkg_name定义程序属于哪个包,每个 go 文

go 变量

变量声明使用关键字 var。可以用于包内或函数内 变量声明 指定类型不赋值,使用默认值 var vname vtype = value 提供初始化值时可省略类型,根据初始化值自行判定变量

go 变量作用域

函数内定义的变量是局部变量,只作用于函数体内,参数和返回值都是局部变量 函数外定义的变量是全局变量,全局变量可在整个包甚至外部包(导出后)使用

go 基础语法

行分隔符:一行就是一个语句;多个语句放一行需要手动加;,但是不建议 注释不被编译,但是建议每个包一个注释 标识符:用于命名变量、类型等程序实体,

go 常量

常量 数值常量 常量 定义类似于变量声明,但是需要 const 关键字 const vname [vtype] = value 显式类型定义const vname vtype = value 隐式类型定义const vname = value 不能使用 := 声明 相同类