tag go

標籤
貢獻245
450
05:15 PM · Oct 25 ,2025

@go / 博客 RSS 訂閱

shendaowu - 傳下去,Visual Studio Code 中的 go 插件報 workspace 錯誤大概是因為沒有以文件夾的方式打開

大概是這樣的報錯: This file is within module "..\..\worktest2\modtest2", which is not included in your workspace. To fix this problem, you can add this module to your go.work file (file:///C:/Users/shen

vscode插件 , visual-studio-code , go

收藏 評論

user_zsXbv7Bi - 我所理解的 Go 的 CSP 併發控制機制

你一定聽説過 Go 語言所倡導的這個核心併發原則:“不要通過共享內存來通信,而要通過通信來共享內存 (Don't communicate by sharing memory; instead, share memory by communicating)”。這一理念深刻影響了 Go 的併發設計。 本文將具體討論 Go 中的 併發控制機制 (concurrency control mechanism

csp , 併發 , go

收藏 評論

自由自在像小鳥 - MongoDB必知必會

MongoDB的知識點梳理,內容有chatgpt4.1輔助完成,使用的提示詞(文章大致內容)如下,可按需“食用”😊: mongodb 定義 關鍵概念 如何增刪改查 如何持久化 如何用go語言操作他 是否支持事務,如果是實現原理,他相對於mysql他存儲數據的底層邏輯是? 1. MongoDB 定義 MongoDB 是一個開源的、面向文檔的 NoSQL 數據庫,以高性能、高可用、易擴展著稱。它用

mongodb , go

收藏 評論

Seven - Go語言極致性能優化實戰:生產級代碼優化完全指南

在微服務架構和高併發場景下,Go語言的性能優化直接決定了系統的吞吐量和資源利用率。本文基於大型互聯網公司的實踐經驗,提供可直接應用於生產環境的優化技巧和完整代碼實現。 1. 內存分配優化 1.1 對象池模式 (sync.Pool) 對象池是減少GC壓力的核心技術,特別適用於頻繁創建和銷燬的對象。 package main import ( "sync" "bytes" "

優化 , go

收藏 評論

江湖十年 - 在 Go 語言中如何實現協程池

公眾號首發:https://mp.weixin.qq.com/s/Xbk4QF7HFll102xaF5r_3Q 如果你熟悉 Java、Python 等編程語言,那麼你一定聽説或者使用過進程池或線程池。因為進程和線程不是越多越好,過多的進程或線程可能造成資源浪費和性能下降。所以池化技術在這些主流編程語言中非常流行,可以有效控制併發場景下資源使用量。 而 Go 語言則沒有提供多進程和多線程的支持,僅提

面試 , 協程 , 併發 , go , 後端

收藏 評論

user_zsXbv7Bi - 理解 Golang 中的最大/最小堆、`heap` 與優先隊列

最大堆、最小堆、 heap 、 優先隊列在數據結構算法題目裏都是一個東西。這裏討論 container/heap 的使用。 參考: https://pkg.go.dev/container/heap https://github.com/EndlessCheng/codeforces-go/blob/master/copypasta/heap.go 靈佬筆記,非常有用 在算法題目中,我們經

數據結構 , 數據結構和算法 , go

收藏 評論

江湖十年 - 一行命令統計代碼行數

公眾號首發:https://mp.weixin.qq.com/s/N1JxiRnr5c4pq0RBo3RGYA 我在網上衝浪時,在 GitHub 上發現了一個感興趣的開源項目 OneX ,我將其下載到本地,現在我該如何知道這個項目的體量呢?一個非常直觀的指標是看這個項目有多少行代碼。 我們可以使用如下命令,來統計 OneX 項目代碼行數: $ cd onex $ find . -name "*.g

命令行 , 面試 , 代碼質量 , go , 後端

收藏 評論

FLY的狐狸 - gtoken v2.0.0 正式發佈,基於 GoFrame 的 token 插件

本次更新: 此版本主要架構全面更新,發佈 v2.X.X,不再兼容 v1.X.X,升級需謹慎 架構全面升級,版本更新到 v2.X.X,不再兼容 v1.X.X 通過 go get -u -v github.com/goflyfox/gtoken/v2 獲取最新版本,升級需謹慎 獨立 Token、Codec、Cache 接口,方便擴展 採用 goframe 標準中間件方式認證,調用更加直觀

token , go , 後端

收藏 評論

江湖十年 - 在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題

公眾號首發地址:https://mp.weixin.qq.com/s/r8mqOUIoCu0713XcH3P1-Q 在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。 有限狀態機 在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghus

面試 , 架構設計 , 代碼優化 , go , 後端

收藏 評論

王中陽講編程 - 字節的後端實習二面,八股盛宴!

新的一週,祝你開心! 好久沒分享面經了,今天來個大的---字節的後端實習二面,簡直就是八股盛宴,問的太多太全面了。 面經詳解 1. 數據庫的隔離級別有哪些? 數據庫事務隔離級別主要分為四種,從低到高依次為: 讀未提交(Read Uncommitted) 允許事務讀取其他事務未提交的數據,可能導致髒讀、不可重複讀和幻讀。 讀已提交(Read Committ

面試 , go , 後端

收藏 評論

Hunter - Golang基礎筆記三之數組和切片

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記三之數組和切片 這一篇筆記介紹 Golang 裏的數組和切片,以下是本篇筆記目錄: 數組定義和初始化 數組屬性和相關操作 切片的創建 切片的長度和容量 切片的擴容 切片操作 1、數組定義與初始化 第一篇筆記的時候介紹過數組的定義與初始化,這裏再介紹一下。 數組是具有固定長度的相同類型元素的序列。 這裏有兩個點

數組 , slice , 擴容 , go

收藏 評論

soroqer - Array 與 Slice 的源碼分析與高效使用-Golang 🔥

在 Go 語言中,數組(array)和切片(slice)是兩種不同的數據結構,它們在內存分配機制上存在着顯著差異。深入理解這些差異及原理並恰當使用,能夠幫助我們提高代碼的執行效率。 在使用上,由於語法糖的存在,很多初學者對於二者並不敏感。數組的寫法是 [n]int,切片則是 []int,區別僅在於是否在 [] 中體現其長度。 從實現上講,slice 是 array 的一種封裝再實現,將長度不可變的

性能優化 , 內存 , 數組 , slice , go

收藏 評論

Hunter - Golang基礎筆記八之函數

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記八之函數 本篇筆記介紹 Golang 裏函數相關的內容,以下是本篇筆記目錄: 函數的定義語法 函數返回值 可變參數函數 匿名函數 閉包 1、函數的定義語法 函數的定義格式如下: func 函數名(參數列表) (返回值列表) { 函數體 } 比如下面是一個兩數相加返回其和的函數: func add(a, b in

函數 , 閉包 , go , 後端

收藏 評論

Hunter - Golang基礎筆記九之方法與接口

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記九之方法與接口 本篇筆記介紹 Golang 裏方法和接口,以下是本篇筆記目錄: 方法 接口 用結構體實現類的功能 1、方法 首先介紹一下方法。 方法是與特定類型關聯的函數,我們在實現一個函數前,綁定一個類型,就實現了這個類型的方法。 比如我們想實現一個結構體的方法,可以如下操作: type Person struc

方法 , 接口 , 類型判斷 , go , 後端

收藏 評論

Ansurfen - 我開發了一個編譯成 VBScript 的現代編程語言 - Hulo

嘿,VBScript 愛好者們! 我最近在做一個編譯器/轉譯器項目,想要解決一些在 Windows 腳本開發中遇到的“老大難”問題。 你知道 VBScript 最令人頭疼的是什麼嗎? 就是那種 冗長的語法 和 有限的語言能力,一旦想實現稍微複雜一點的邏輯,就會陷入繁瑣的拼接和調試地獄。 於是我開始思考—— 有沒有可能用一種更現代、更清爽的語言來寫腳本,然後自動生成 VBScript?

開源軟件 , vbs , 編程語言 , 編譯器 , go

收藏 評論

Ansurfen - 耗時一週,我的編程語言 Hulo 新增 Bash 轉譯和包管理工具

嘿,腳本開發者們! 還記得上週我介紹的那個能編譯成 VBScript 的現代編程語言 Hulo 嗎?這周它又有了重大更新! 🚀 本週重磅更新 1. Bash 轉譯器正式上線! 是的,你沒看錯!Hulo 現在不僅支持 VBScript,還支持 Bash 了! 這意味着你可以用同一套現代語法,同時生成 Windows 和 Linux/macOS 的腳本: // main.hl class User

vbs , bash , 編程語言 , 編譯器 , go

收藏 評論

江湖十年 - 在 Go 中為什麼推薦使用空結構體作為 Context 的 key

公眾號首發地址:https://mp.weixin.qq.com/s/TGNG34qJTI7SZOENidYBOA 我曾在《Go 中空結構體慣用法,我幫你總結全了!》一文中介紹過空結構體的多種用法,本文再來補充一種慣用法:將空結構體作為 Context 的 key 來進行安全傳值。 NOTE: 如果你對 Go 語言中的 Context 不夠熟悉,可以閲讀我的另一篇文章《Go 併發控制:con

面試 , go , 後端

收藏 評論

soroqer - Map 的源碼分析、內存分配、擴容機制-Golang 🔥

Go 語言的 map 是內置的鍵值對(Key-Value)集合類型,是基於哈希表實現的高效數據結構,用於高效存儲和查找數據。其核心特性如下: 無序性:map 中的鍵值對存儲順序不固定,無法通過索引訪問(區別於切片)。 鍵唯一性:鍵(Key)必須唯一,重複插入同一鍵會覆蓋舊值。 動態大小:map 會根據存儲的數據量自動擴容,無需手動管理內存。 通過深入理解 map 的源碼和內存分配,開發者

內存分配 , map , 擴容 , 源碼分析 , go

收藏 評論

Hunter - LeetCode熱題一之兩數之和

本文首發於公眾號:Hunter後端 原文鏈接:LeetCode熱題一之兩數之和 題目 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出和為目標值 target 的那兩個整數,並返回它們的數組下標。 你可以假設每種輸入只會對應一個答案,並且你不能使用兩次相同的元素。 你可以按任意順序返回答案。 題目來源 此題來源於 LeetCode 題庫序號 1。 L

leetcode , go , 後端 , Python

收藏 評論

soroqer - Channel 的源碼分析與高效使用-Golang 🔥

“不要通過共享內存來通信,而要通過通信來共享內存”。這句話精準概括了 Go 併發模型的核心哲學——而承載這一哲學的核心原語,正是 channel(通道)。 要深入理解 channel,我們需要從 runtime 包的源碼層面分析其核心結構、關鍵操作(創建、發送/接收、關閉)的實現邏輯,以及底層如何通過同步機制(鎖、等待隊列)實現協程(Goroutine)間的安全通信。 以下源碼基於 go1.24.

channel , 效率 , 源碼分析 , go

收藏 評論

江湖十年 - Go 官方推薦的 Go 項目文件組織方式

公眾號首發:https://mp.weixin.qq.com/s/JwEPt3oZ3aY8ZzKddwnpiA 剛開始接觸 Go 的開發者大概都會遇到一個問題:我該如何組織我的 Go 項目?這種問題當然沒有標準答案,不過 Go 官方下場,給了廣大 Gopher 一個推薦模板。本文就來帶大家一起來學習一下 Go 官方對於 Go 項目佈局的指導原則。 本文以 Go 官方博客「Organizing a

服務器開發 , 面試 , go , 後端 , Web

收藏 評論

gvison - 三步搞定 Go 分佈式任務!sasynq 庫讓異步任務變得如此簡單

Go 後台任務的“坑”,你踩過幾個? 在 Go 應用開發中,總有一些任務不適合現場完成,比如: 發郵件/發短信:用户點擊按鈕後,還要乾等?體驗太糟糕! 大計算量任務:生成報表、數據分析,CPU 一直被佔,其他請求全卡住? 定時任務:凌晨跑統計、每小時同步數據,難道要寫個死循環 time.Sleep? 所以,聰明的我們會把這些任務扔進異步任務隊列,讓後台“工人”(Worker)慢慢處理。

定時任務 , 分佈式 , go

收藏 評論

要出家的扁豆 - [leetcode]876. 鏈表的中間結點

示例 輸入:head = [1,2,3,4,5] 輸出:[3,4,5] 解釋:鏈表只有一箇中間結點,值為 3 。 輸入:head = [1,2,3,4,5,6] 輸出:[4,5,6] 解釋:該鏈表有兩個中間結點,值分別為 3 和 4 ,返回第二個結點。 思路 數組 鏈表轉存數組,有順序下標,根據長度判斷中間點。 遍歷鏈表 新建數組 鏈表填充到數組中 返回數

leetcode , go

收藏 評論

Ansurfen - Hulo語言架構:從源代碼到目標代碼的完整流程

最近這一段時間忙着工作和開發Hulo編程語言,滿打滿算已經過了三個月多了。心血來潮,想梳理下Hulo編程語言的開發流程,也順帶以個人的視角解讀下編程語言是如何從零開始誕生的。希望通過這篇文章,能夠為對編程語言實現感興趣的開發者提供一個實踐性的參考,同時也記錄下這段充滿挑戰和收穫的開發歷程。 架構 Hulo語言的定位是批處理腳本的編譯器,最終經過編譯後的目標語言是Bash、Batch、VBS、Pow

批處理 , 教程 , 知識 , 編程語言 , go

收藏 評論