go

Vale3656 小时前
go
[Go]字符串 比较go.dev/src/interna…
UIUV1 天前
后端·go·编程语言
Go语言入门到精通学习笔记Go语言是静态强类型语言,这意味着变量的类型在编译时确定,不能在运行时改变。Go提供了两种变量声明方式:var和短声明:=。
littleschemer1 天前
go·map并发崩溃
Go异步持久化如何防止炸服在Go语言游戏服务器开发中,异步持久化是提升性能的核心手段——将玩家数据、公共数据的持久化操作(存库、序列化)剥离到独立协程,避免阻塞业务逻辑。但随之而来的一个致命问题的是:map并发读写导致的进程崩溃,也就是Go运行时抛出的fatal error: concurrent map iteration and map write,这种错误无法通过recover捕获,会直接导致服务器宕机(炸服),造成严重的业务损失。
不会敲代码11 天前
go
从零开始学 Go:协程并发与 Web 开发初探最近开始系统学习 Go 语言,被它简洁的语法和强大的并发模型所吸引。本文是我学习过程中的一些笔记和代码整理,从最基础的语法到协程并发,再到用 Gin 搭建 Web 服务,希望能帮助同样在入门 Go 的同学快速上手。文章会由浅入深,配合可运行的代码示例,让你边看边练。
扉页的墨1 天前
go
Wails v2 实战:用 Go 写桌面应用,从 0 到 1 构建一个本地笔记工具本文基于 Wails v2.9+ / Go 1.22+,所有代码均可直接运行。不是教程,是实战复盘。作为一个 Go 开发者,我一直想写个桌面工具——不是 Web 套壳,不是 Electron(吃内存大户),更不是 C++ 套 Qt(学习曲线陡峭到怀疑人生)。
我叫黑大帅1 天前
后端·面试·go
从零实现一个完整 RAG 系统:基于 Eino 框架的检索增强生成实战想象一下,你问 ChatGPT:"2024 年巴黎奥运会中国代表团拿了多少金牌?" 如果 ChatGPT 的训练数据截止到 2023 年,它只能猜一个大概数字——甚至可能一本正经地编造一个错误答案。这就是大语言模型的幻觉问题:模型不知道自己不知道什么。
不会写DN2 天前
网络·面试·go
通过eino-ext如何正常indexer RAG?这会启动 4 个服务:访问 localhost:8000 可进入Attu 这是Milvus是可视化操作页面
donecoding2 天前
javascript·typescript·go
遗嘱、水管与抢救室:TS 切入 Go 的流程控制、接口与并发在 TS 中,finally 紧跟在 try 代码块之后。但在 Go 中,defer 是函数级的延迟调用。
扉页的墨2 天前
go
Go 协程泄漏排查实战:我是如何把线上内存从 500MB 压到 20MB 的摘要:凌晨两点半,告警群里一条 "内存使用率 > 90%" 的消息把我从睡梦中炸醒。排查后发现,一个不起眼的 goroutine 泄漏,硬生生把一个本该只占 20MB 的微服务撑到了 500MB。本文完整复盘整个排查过程,附带 4 种常见泄漏模式的可运行代码和修复方案,建议收藏。
donecoding2 天前
javascript·typescript·go
对象模型与内存的“钥匙理论”:TS 切入的 Go 的结构体与指针在 TS 中,class 是高度内聚的。但在 Go 中,struct 被剥离得只剩下数据描述。TypeScript(内聚模型)
我叫黑大帅3 天前
后端·面试·go
通过eino-ext如何正常indexer RAG?这会启动 4 个服务:访问 localhost:8000 可进入Attu 这是Milvus是可视化操作页面
审判长烧鸡3 天前
go·捕获·闭包
GO闭包【4】“普通闭包”与“循环闭包”之间捕获的核心区别循环闭包执行结果32:01 a 32:01 f ================== WARNING: DATA RACE Read at 0x00c00009e030 by main goroutine: main.main() main.go:18 +0x128
审判长烧鸡3 天前
go·闭包
Go 闭包【1】基础关于GO闭包的东西,我有点忘了,是不是有参数就马上串行执行?没参数就是并行异步执行?并不是这样的。参数的存在与否并不决定它是同步还是异步执行。
ん贤3 天前
算法·go·gc·垃圾回收
Go GC垃圾回收机制常用的GC回收机制主要分追踪法、引用计数法这两大类。 引用计数法,就是每次被引用就加一,被取消引用就减一,当为零时,就可以清除掉。 Python就主要用的是引用计数法,优点是快,且方便。但缺点是,两个指针相互引用时,就会发生内存泄露。 而追踪法是从根Root节点开始,遍历所有存活的对象,没被遍历到的就是可以清除掉的。而 GO 语言使用的就是标记追踪法。
donecoding3 天前
前端·typescript·go
类型与语法的“直觉对齐”:TS 切入的 Go 语言初体验在 TS 中,由于其复杂的编译背景,我们有时会下意识地混淆“声明”与“可见性”。但在 Go 面前,物理行号即是编译器的唯一识别边界。Go 编译器是单向阅读的,不存在任何形式的标识符预扫描。
审判长烧鸡3 天前
go·闭包·闭包捕获
GO闭包【3】闭包捕获为什么没用参数,没用引用,这值V就直接进去了?这是一个非常深入且关键的问题。之所以让你觉得“没传参、没引用,值就进去了”,是因为 Go 语言的闭包(Closure)在底层自动帮你完成了变量的捕获。
审判长烧鸡3 天前
go·闭包
Go闭包【2】 1.22 对 for 循环里闭包陷阱的那个“史诗级更新”这个更新非常重要,因为它直接终结了 Go 语言过去十年里最常见的 Bug 之一。在 Go 1.22 之前,我们常说“不要在闭包里直接引用循环变量”,但现在,这个规则变了。
stark张宇3 天前
后端·go
Go语言必知的5个核心知识点:init、路径、输出、切片、MapGo 中的 init() 函数是特殊的初始化函数,用于包级别的初始化操作,它的执行时机有严格的规则,是 Go 程序启动流程中固定的一环。在当前包被导入 / 程序启动时,init() 函数会在 main 函数执行之前,自动被 Go 运行时调用执行,无需手动调用。
王码码20354 天前
后端·golang·go·接口
Go语言中的配置管理:从Viper到环境变量作为一个在小厂挣扎的Go后端老兵,我对配置管理的理解就一句话:能灵活的绝不僵硬。想当年在大厂时,配置管理是日常工作的重要部分,每天都要处理不同环境的配置,生怕配置错误导致服务崩溃。现在到了小厂,虽然环境没那么复杂,但配置管理的重要性依然不减,毕竟配置是服务的灵魂。
王码码20355 天前
后端·golang·go·接口
Go语言的包管理:从GOPATH到Go Modules在现代软件开发中,包管理是一个至关重要的环节。一个好的包管理系统能够:对于 Go 语言来说,包管理系统的演变经历了从 GOPATH 到 Go Modules 的重要转变,这个转变不仅解决了早期包管理的诸多问题,也为 Go 语言的大规模应用奠定了基础。