Go语言技术文章
-
golang是一种强类型语言,虽然在代码中经常看到这种写法,i:=10这其实这是编译器自动做了类型推断在编译期间。编译器会对数据进行类型检查。不同类型的数据不能赋值,不能在函数中传参。强500 收藏 -
在不了解这个问题之前,在网上搜索一下竟然搜出了两个完全相反的结果,所以打算自己测试下这个问题。 首先给出结论: 在同一个package中,可以多个文件中定义init方法 在同一个go文件中,500 收藏 -
我们知道 Golang 切片(slice) 在容量不足的情况下会进行扩容,扩容的原理是怎样的呢?是不是每次扩一倍?下面我们结合源码来告诉你答案。 一、源码 Version : go1.15.6 src/runtime/slice.go //go500 收藏 -
在go语言提供的系统包中包含了大量和数字证书有关的方法。在这些方法中就有私钥生成的方法、私钥解析的方法、证书请求生成的方法、证书生成的方法等等。通过这些方法应该能够实现和open500 收藏 -
Go有强烈的C背景,除了语法具有继承性外,其设计者以及其设计目标都与C语言有着千丝万缕的联系。在Go与C语言互操作(Interoperability)方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至500 收藏 -
template 概述 最近在做脚手架相关的内容, 研究了一下 Go 的 text/template 包, 接下来跟大家分享下 template 的基本原理. 在 Golang 的标准库中, 有两个和 template 有关的包, 一个是 html/template, 另外一个是500 收藏 -
一、程序报错 发现BSC节点报错: write: broken pipe 2022/04/11 11:23:00 http: panic serving 172.31.34.109:32952: write tcp 172.31.6.64:9093->172.31.34.109:32952: write: broken pipegoroutine 145578 [running]:net/http.(*conn).serve.func1(0xc00500 收藏 -
Consul高负载导致Go网关连接重置,根本原因是Server连接处理能力不足与客户端短连接、无超时、无复用等默认行为不匹配;需强制复用连接、设超时与降频检查,并优化Server配置及规避Go代码陷阱。499 收藏 -
OpenTelemetrySDK默认采样策略在TracerProvider初始化时固定,后续修改无效;必须在创建trace.NewTracerProvider时传入采样器,且高QPS接口需组合ParentBased与自定义采样器实现差异化采样。499 收藏 -
strings.Builder扩容公式为“2×cap(b.buf)+n”,即当前容量翻倍后加上新增需求字节数,确保扩容后容量足以容纳全部新数据。499 收藏 -
Go语言内置http.FileServer可快速搭建安全静态文件服务,需正确配置路径、处理路由前缀、防范目录遍历;支持SPA路由需手动拦截非静态路径返回index.html;生产环境应加固安全、添加缓存与日志。499 收藏 -
gotest默认只运行当前目录下同包的*_test.go文件,因Go要求测试与被测代码同包、文件名匹配、函数名符合TestXXX规范且公有。499 收藏 -
可执行程序需满足packagemain且含funcmain();库代码为非main包名,导出符号首字母大写;cmd/子目录下packagemain才是真实入口。499 收藏 -
Go测试中环境变量、外部服务、时间相关逻辑易失效,根本原因是被测代码未预留可替换入口,应通过依赖注入、接口抽象和延迟读取等方式提升可测性。499 收藏 -
Go服务只暴露规范指标,监控告警由Prometheus+Alertmanager+Grafana实现;需显式创建独立Registry、路由归一化埋点、跳过健康接口采集,并校准label与告警基线。499 收藏