go学习
文章平均质量分 81
大冰
热衷于.net、以及dedecms、ecshop二次开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
go中,调用context 返回的cancel函数会触发哪些行为
会触发什么?层面触发的行为后果context内部ctx.Done()通道被关闭不再阻塞,监听它的select语句被激活。ctx.Err()返回可以通过检查ctx.Err()来确认context是否已被取消以及原因。级联取消所有子context实现了整个调用链的统一生命周期管理。外部库/代码中断操作并立即返回如 HTTP 请求被中止、gRPC 调用被取消、SQL 查询被停止。返回一个非nil的错误通常是或,调用者可以据此判断操作是否因取消而失败。释放资源如关闭网络连接、文件句柄等。一句话概括:调用。原创 2025-10-10 16:48:04 · 255 阅读 · 0 评论 -
使用 Gin 框架来实现 SSE (Server-Sent Events)
特性方案一 (基础实现)方案二 (生产级实现)目标演示 SSE 的基本原理构建可扩展、可管理的实时服务架构单一 goroutine 处理单一连接Broker模式,集中管理所有连接连接管理无,连接断开后 goroutine 泄漏使用sync.Map和defer安全管理,自动清理消息分发循环内生成消息,只能发给当前客户端支持广播,可轻松扩展为点对点或组播解耦性消息产生和发送耦合在 Handler 中消息产生(如/broadcast端点)和发送(Broker)完全解耦健壮性较差,无错误恢复和背压处理。原创 2025-10-10 16:07:08 · 1293 阅读 · 0 评论 -
在 Go 中,用internal实现代码的封装和访问控制
在 Go 中,internal包是一种特殊的包命名约定,用于实现代码的封装和访问控制。以下是internal。原创 2025-09-17 21:03:37 · 431 阅读 · 0 评论 -
Go 语言中一个重要的概念:可寻址性(addressability)
在 Go 语言中,一个值是可寻址的(addressable)意味着我们可以获取它的内存地址,即可以对它使用操作符。变量指针解引用数组元素切片元素结构体字段可寻址值的字段而不可寻址的常量字面量函数返回值map 中的值接口值(具体值可能不可寻址)类型转换结果某些表达式结果底层实现:map 可能会 rehash,导致内部值的位置改变内存安全:避免创建指向可能失效的内存的指针设计一致性:确保 map 的行为在任何情况下都是可预测的。原创 2025-09-16 22:21:38 · 393 阅读 · 0 评论 -
Go中非常方便的两中方法调用规则
自动转换:编译器会自动将值类型转换为指针类型便利性:使代码更加简洁直观灵活性:允许在不同场景下使用相同的方法只有可寻址的值才能调用指针接收者方法这种自动转换不影响接口实现规则(只有指针类型实现了指针接收者方法)这种设计体现了 Go 语言追求简洁和实用的哲学,让开发者能够更自然地编写代码,而不必过分关注类型转换的细节。原创 2025-09-16 22:17:51 · 397 阅读 · 0 评论 -
深入探索 go中指针接受者和值接受者的区别
修改能力:指针接收者可以修改原始值,值接收者不能性能:指针接收者避免了大型结构体的复制开销方法集:指针接收者方法只属于指针类型,值接收者方法属于值类型和指针类型接口实现:这会影响类型是否实现了特定接口选择哪种接收者取决于你的具体需求,但一般来说,如果方法需要修改接收者或者接收者是大型结构体,应该使用指针接收者。原创 2025-09-16 22:13:32 · 879 阅读 · 0 评论
分享