From e486d47e2a6415dd5932518509e2772256d09315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=82=B2=E6=96=B0?= Date: Wed, 15 Jul 2026 19:12:07 +0800 Subject: [PATCH] docs(note): reorganize notes structure and migrate content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move Windows and 算法 notes from 随手记 to 资源 directory - Migrate Golang map pitfalls and dot import notes to Golang/使用注意 - Delete omos配置 note - Add Typora custom theme reference link --- .../Windows.md => 资源/DevOps/Windows使用.md} | 3 +- .../{随手记/算法.md => 资源/算法/轮询算法.md} | 0 note/资源/编程/Golang/使用注意.md | 51 +++++ note/随手记/go.md | 49 ----- note/随手记/omos配置.md | 176 ------------------ note/随手记/网址.md | 1 + 6 files changed, 54 insertions(+), 226 deletions(-) rename note/{随手记/Windows.md => 资源/DevOps/Windows使用.md} (94%) rename note/{随手记/算法.md => 资源/算法/轮询算法.md} (100%) delete mode 100644 note/随手记/omos配置.md diff --git a/note/随手记/Windows.md b/note/资源/DevOps/Windows使用.md similarity index 94% rename from note/随手记/Windows.md rename to note/资源/DevOps/Windows使用.md index d3641b8..7f334b9 100644 --- a/note/随手记/Windows.md +++ b/note/资源/DevOps/Windows使用.md @@ -14,4 +14,5 @@ ### 拖拽到终端 -- 直接把文件**拖入** PowerShell 或 CMD 窗口,会自动粘贴完整路径。 \ No newline at end of file +- 直接把文件**拖入** PowerShell 或 CMD 窗口,会自动粘贴完整路径。 + diff --git a/note/随手记/算法.md b/note/资源/算法/轮询算法.md similarity index 100% rename from note/随手记/算法.md rename to note/资源/算法/轮询算法.md diff --git a/note/资源/编程/Golang/使用注意.md b/note/资源/编程/Golang/使用注意.md index 3164ef9..84d8445 100644 --- a/note/资源/编程/Golang/使用注意.md +++ b/note/资源/编程/Golang/使用注意.md @@ -210,3 +210,54 @@ func TestJson(t *testing.T) { 1. **小请求(配置、JSON)**:使用 `io.ReadAll` 存入内存,再通过 `io.NopCloser` 塞回 `r.Body` 或设置 `r.GetBody`。 2. **中等请求(签名校验)**:使用 `io.TeeReader` 边读边处理,节省一次全量扫描。 3. **大请求(文件上传)**:**禁止 ReadAll**。直接流式 `io.Copy` 到目的地,或使用临时文件做中转。 + + + +## map的坑 + +go的map内部是哈希表,元素会因 rehash(扩容)而移动到新的内存位置,如果允许 `&m[key]` 拿到一个指针,map 一旦扩容,这个指针就变成悬空指针(指向已失效的内存),为了避免这种内存安全问题,Go 直接禁止对 map 值取地址,下面是示例代码: + +```go +type User struct { + Name string + Age int +} + +func main() { + m := map[int]User{1: {Name: "张三", Age: 20}} + + // ❌ 编译错误:cannot assign to struct field m[1].Name in map + m[1].Name = "李四" + + // ✅ 正确的替代写法 + temp:=m[1] + temp.Name = "李四" + m[1]=temp +} +``` + +> **可寻址(addressable)**:能通过 `&` 拿到它内存地址的操作数。 +> +> **不可寻址(not addressable)**:不能通过 `&` 拿到地址的操作数。 + +## 句点引入 + +一个完整引入声明语句形式的引入名`importname`可以是一个句点(`.`)。 这样的引入称为句点引入。使用被句点引入的包中的导出代码要素时,限定标识符的前缀必须省略。 + +比如在下面这个例子中,`Println`和`Now`函数调用不需要带任何前缀。 + +```go +package main + +import ( + . "fmt" + . "time" +) + +func main() { + Println("Current time:", Now()) +} +``` + +> 一般来说,句点引入不推荐使用,因为它们会导致较低的代码可读性 + diff --git a/note/随手记/go.md b/note/随手记/go.md index 4c46706..8b13789 100644 --- a/note/随手记/go.md +++ b/note/随手记/go.md @@ -1,50 +1 @@ -## 句点引入 - -一个完整引入声明语句形式的引入名`importname`可以是一个句点(`.`)。 这样的引入称为句点引入。使用被句点引入的包中的导出代码要素时,限定标识符的前缀必须省略。 - -比如在下面这个例子中,`Println`和`Now`函数调用不需要带任何前缀。 - -```go -package main - -import ( - . "fmt" - . "time" -) - -func main() { - Println("Current time:", Now()) -} -``` - -> 一般来说,句点引入不推荐使用,因为它们会导致较低的代码可读性 - - - -## map的坑 - -go的map内部是哈希表,元素会因 rehash(扩容)而移动到新的内存位置,如果允许 `&m[key]` 拿到一个指针,map 一旦扩容,这个指针就变成悬空指针(指向已失效的内存),为了避免这种内存安全问题,Go 直接禁止对 map 值取地址,下面是示例代码: -```go - -type User struct { - Name string - Age int -} - -func main() { - m := map[int]User{1: {Name: "张三", Age: 20}} - - // ❌ 编译错误:cannot assign to struct field m[1].Name in map - m[1].Name = "李四" - - // ✅ 正确的替代写法 - temp:=m[1] - temp.Name = "李四" - m[1]=temp -} -``` - -> **可寻址(addressable)**:能通过 `&` 拿到它内存地址的操作数。 -> -> **不可寻址(not addressable)**:不能通过 `&` 拿到地址的操作数。 diff --git a/note/随手记/omos配置.md b/note/随手记/omos配置.md deleted file mode 100644 index 7a9965f..0000000 --- a/note/随手记/omos配置.md +++ /dev/null @@ -1,176 +0,0 @@ -```json -{ - "$schema": "https://unpkg.com/oh-my-opencode-slim@latest/oh-my-opencode-slim.schema.json", - "preset": "zhipu", - "presets": { - "opencode-go": { - "orchestrator": { - "model": "opencode-go/glm-5.2", - "skills": [ - "*" - ], - "mcps": [ - "*", - "!context7" - ] - }, - "oracle": { - "model": "deepseek/deepseek-v4-pro", - "variant": "max", - "skills": [ - "simplify" - ], - "mcps": [] - }, - "council": { - "model": "opencode-go/qwen3.7-max", - "variant": "high", - "skills": [], - "mcps": [] - }, - "librarian": { - "model": "opencode-go/minimax-m3", - "skills": [], - "mcps": [ - "websearch", - "context7", - "gh_grep" - ] - }, - "explorer": { - "model": "opencode-go/mimo-v2.5-pro", - "skills": [], - "mcps": [] - }, - "designer": { - "model": "opencode-go/kimi-k2.7-code", - "variant": "medium", - "skills": [], - "mcps": [] - }, - "fixer": { - "model": "opencode-go/deepseek-v4-flash", - "variant": "high", - "skills": [], - "mcps": [] - }, - "observer": { - "model": "opencode-go/kimi-k2.7-code", - "skills": [], - "mcps": [] - } - }, - "zhipu": { - "orchestrator": { - "model": "zhipuai-coding-plan/glm-5.2", - "skills": [ - "*" - ], - "mcps": [ - "*", - "!context7" - ] - }, - "oracle": { - "model": "zhipuai-coding-plan/glm-5.2", - "variant": "max", - "skills": [ - "simplify" - ], - "mcps": [] - }, - "council": { - "model": "zhipuai-coding-plan/glm-5.1", - "skills": [], - "mcps": [] - }, - "librarian": { - "model": "zhipuai-coding-plan/glm-5-turbo", - "skills": [], - "mcps": [ - "websearch", - "context7", - "gh_grep" - ] - }, - "explorer": { - "model": "zhipuai-coding-plan/glm-5-turbo", - "skills": [], - "mcps": [] - }, - "designer": { - "model": "zhipuai-coding-plan/glm-5.2", - "variant": "medium", - "skills": [], - "mcps": [] - }, - "fixer": { - "model": "zhipuai-coding-plan/glm-5.2", - "skills": [], - "mcps": [] - }, - "observer": { - "model": "zhipuai-coding-plan/glm-4.6v", - "skills": [], - "mcps": [] - } - }, - "deepseek": { - "orchestrator": { - "model": "deepseek/deepseek-v4-pro", - "variant": "high", - "skills": [ - "*" - ], - "mcps": [ - "*", - "!context7" - ] - }, - "oracle": { - "model": "deepseek/deepseek-v4-pro", - "variant": "max", - "skills": [ - "simplify" - ], - "mcps": [] - }, - "council": { - "model": "deepseek/deepseek-v4-pro", - "variant": "medium", - "skills": [], - "mcps": [] - }, - "librarian": { - "model": "deepseek/deepseek-v4-flash", - "skills": [], - "mcps": [ - "websearch", - "context7", - "gh_grep" - ] - }, - "explorer": { - "model": "deepseek/deepseek-v4-flash", - "skills": [], - "mcps": [] - }, - "designer": { - "model": "deepseek/deepseek-v4-pro", - "variant": "medium", - "skills": [], - "mcps": [] - }, - "fixer": { - "model": "deepseek/deepseek-v4-flash", - "variant": "high", - "skills": [], - "mcps": [] - } - } - }, - "disabled_agents": [] -} - -``` - diff --git a/note/随手记/网址.md b/note/随手记/网址.md index 1d146d7..2d364f8 100644 --- a/note/随手记/网址.md +++ b/note/随手记/网址.md @@ -2,3 +2,4 @@ +[Typora自定义主题](https://theme.typora.io/doc/zh/Write-Custom-Theme/)