Go教程技术文章
-
Go语言开发者不需要写代码来释放程序中不再使用的变量和结构占用的内存,在 Go语言运行时中有一个独立的进程,即垃圾收集器(GC),会处理这些事情,它搜索不再使用的变量然后释放它们492 收藏 -
time 包为我们提供了一个数据类型 time.Time(作为值使用)以及显示和测量时间和日期的功能函数。当前时间可以使用 time.Now() 获取,或者使用 t.Day()、t.Minute() 等等来获取时间的一部分;甚至可492 收藏 -
Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出: 只要所有实现了Error()方法的对象都可以, 这里给个比较简单的demo,后续整理一个error的优化封装: package main impo492 收藏 -
golang1.16也在今天正式发布了。 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1.16的新特性吧。 语言內建的资源嵌入支持 之前市面上已492 收藏 -
go fmt 命令主要是用来帮你格式化所写好的代码文件【很多第三方集成软件都是使用了go fmt命令】 一、使用: go fmt <文件名>.go 使用go fmt命令,更多时候是用gofmt,而且需要参数 -w,否则格492 收藏 -
通过值接收者、指针接收者和 reflect.Type.NumMethod 的小实验,解释 Go 方法集如何影响接口实现判断,并给出编译期断言与边界检查方法。491 收藏 -
Go maps.DeleteFunc 用回调返回值决定删除或保留,直接修改原 map。本文用状态清理示例说明条件写法、结果核对、nil map 与 clear 的边界。491 收藏 -
Go net.SplitHostPort 遇到无端口、未加括号 IPv6 和空端口时分别怎样处理?本文用地址边界、错误类型、JoinHostPort 和输入预检说明正确写法。491 收藏 -
Golang · Go教程 | 3星期前 | HTTP · go · sse · 流式响应 · Go EventSource SSE Server-Sent Events http.Flusher ResponseController
Go 写 SSE 接口时,事件格式、Flush 和连接关闭必须同时成立:消息用空行分隔,写入后显式刷新,并监听请求 Context 的取消信号。本文比较 http.Flusher 与 ResponseController.Flush,给出一段能处理写入错误和客户端断开的最小实现。491 收藏 -
Go 的 http.Transport.Clone 适合从一份稳定的连接配置派生客户端,但它不会替你合并请求级 Header,也不该被当成共享运行状态的复制器。本文从连接池、Header 隔离和并发改造三个边界拆开 Clone 的正确用法。491 收藏 -
Go语言中channel用于goroutine间通信,通过make创建无缓冲或有缓冲channel,无缓冲channel发送会阻塞直至接收方就绪。491 收藏 -
切片越界错误源于访问超出len或cap范围的索引,需通过检查len和cap避免;常见方法包括访问前判断边界、安全封装函数如SafeGet、遍历中避免修改结构,并辅以defer+recover兜底,核心是前置预防而非依赖恢复。491 收藏 -
math/bits比手动位运算更值得用,因其提供经测试、指令级优化(如POPCNT)、跨架构自动选优的位操作函数;手动实现易错且无法利用硬件加速,其真正价值体现在高频位统计与低延迟系统中。491 收藏 -
Linkerd数据平面使用Golang实现,适合高并发和高性能需求。其核心职责包括请求路由与负载均衡、TLS/mTLS支持、指标采集与日志记录、故障注入与重试机制;模块设计涵盖网络监听与转发、路由与负载均衡、TLS/mTLS处理及指标收集;优化技巧包括sync.Pool减少内存分配、避免锁竞争、context.Context控制超时、连接池复用;协作方式通过gRPC接口订阅配置变更、上报状态并采用watch机制实现高效通信。491 收藏 -
Golang微服务核心在于合理拆分与有效治理:按业务能力(限界上下文)而非技术模块划分服务,用HTTP/JSON优先保障可控性,落地服务发现、熔断降级、可观测性三大痛点,并通过独立CI/CD、健康检查和优雅退出保障发布质量。491 收藏