docs(note): 补充 go 命令/excelize/MySQL 字符集笔记

This commit is contained in:
张育新
2026-08-08 18:20:19 +08:00
parent 817344fc66
commit 2b442221b2
7 changed files with 189 additions and 24 deletions
+45
View File
@@ -1,3 +1,48 @@
## 依赖与模块管理
| 命令 | 作用 | 示例 |
| ----------------- | ---------------------------------------- | ---------------------------------------- |
| `go mod init` | 初始化一个新模块(生成 go.mod) | `go mod init myapp` |
| `go mod tidy` | 自动添加缺失的依赖、删除未使用的依赖 | `go mod tidy` |
| `go get` | 为当前模块添加/升级/降级依赖 | `go get github.com/gin-gonic/gin@v1.9.0` |
| `go mod download` | 预下载 go.mod 中声明的所有依赖到本地缓存 | `go mod download` |
| `go mod vendor` | 将依赖复制到 vendor 目录(离线构建用) | `go mod vendor` |
| `go list` | 列出包或模块信息 | `go list -m all`(查看所有依赖版本) |
## 运行与安装
| 命令 | 作用 | 示例 |
| :----------- | :---------------------------------- | :----------------------------------- |
| `go run` | 编译并直接运行程序(适合调试) | `go run .` |
| `go install` | 编译并安装到 GOBIN 目录(全局可用) | `go install example.com/tool@latest` |
## 代码质量与格式化
| 命令 | 作用 | 示例 |
| :------- | :--------------------------- | :------------- |
| `go fmt` | 自动格式化代码,符合官方风格 | `go fmt ./...` |
| `go vet` | 静态检查代码中潜在的错误 | `go vet ./...` |
| `go fix` | 自动把旧版 API 更新为新 API | `go fix ./...` |
## 查看信息
| 命令 | 作用 | 示例 |
| :----------- | :--------------------- | :------------------------------------- |
| `go doc` | 查看包或函数的文档 | `go doc fmt.Println` |
| `go env` | 查看/修改 Go 环境配置 | `go env -w GOPROXY=https://goproxy.cn` |
| `go version` | 查看当前 Go 版本 | `go version` |
| `go help` | 查看某个命令的详细帮助 | `go help build` |
## 其他进阶命令
| 命令 | 作用 | 说明 |
| :------------ | :---------------------------------------------- | :------------------------------------------------------- |
| `go clean` | 清除缓存和编译产物 | `go clean -cache`、`go clean -modcache` |
| `go generate` | 运行源代码中的 `//go:generate` 指令自动生成代码 | 常用于生成代码模板 |
| `go tool` | 调用 Go 自带工具 | `go tool pprof`(性能分析)、`go tool trace`(协程跟踪) |
| `go work` | 多模块工作区管理 | `go work init`、`go work use ./xxx` |
| `go bug` | 打开浏览器提交 bug 报告 | 会自动附带系统信息 |
## 交叉编译
### 基本用法
@@ -115,3 +115,86 @@ func NewServiceContext(c config.Config) *ServiceContext {
}
```
### excelize
读写Excel的Go库
[github](https://github.com/qax-os/excelize)
#### 创建工作簿
```go
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 创建一个新的Sheet,返回的index为该工作簿的索引
index, err := f.NewSheet("SheetName")
if err != nil {
return fmt.Errorf("创建Sheet失败: %w", err)
}
```
#### 打开文件
```go
f, err := excelize.OpenFile(filePath)
if err != nil {
return fmt.Errorf("打开 Excel失败: %w", err)
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
```
#### 写入cell值
```go
f.SetCellValue("SheetName", "B2", 100)
```
#### 设置工作簿默认活动工作表
```go
f.SetActiveSheet(index)
```
#### 创建或更新excel表
```go
if err := f.SaveAs("Book1.xlsx"); err != nil {
return fmt.Errorf("保存失败: %w", err)
}
```
#### 获取指定cell值
```go
cell, err := f.GetCellValue("Sheet1", "B2")
if err != nil {
return fmt.Errorf("读取cell失败: %w", err)
}
fmt.Println(cell)
```
#### 获取所有工作簿的cell值(二维数组)
```go
rows, err := f.GetRows("Sheet1")
if err != nil {
return fmt.Errorf("读取失败: %w", err)
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
```
+1 -1
View File
@@ -1,4 +1,4 @@
Go 1.24 起,`map` 的底层实现从传统的 `hmap` + `bmap` 哈希表,彻底切换到了 Swiss Table(瑞士表)
> Go 1.24 起,`map` 的底层实现从传统的 `hmap` + `bmap` 哈希表,彻底切换到了 Swiss Table(瑞士表)
![Gemini_Generated_Image_jhqwi7jhqwi7jhqw](D:\zhangyuxin\code\lab\note\assets\golang-map[swiss table].png)