golang
已收录文章:460篇
-
Go的GC通过三色标记清除算法追踪指针引用,从根对象出发标记可达对象,回收无指针引用的内存;长时间持指针会导致内存保留,增加GC压力,可通过合理使用值类型、及时置nil、对象池、预分配和逃逸分析优化。116 收藏
-
答案是:通过reflect可递归访问嵌套结构体字段值、遍历所有字段并处理标签。1.使用FieldByName逐层获取嵌套字段值,支持指针解引用;2.递归遍历结构体所有字段,包括匿名和深层嵌套,结合StructField获取标签信息,实现动态操作。115 收藏
-
使用errors.New可创建简单错误,适用于固定描述场景;如除零错误返回"errors.New(divisionbyzero)";需动态信息时用fmt.Errorf格式化输出;通过==比较判断自定义错误类型,如varErrNotFound=errors.New("resourcenotfound")用于精准错误处理。115 收藏
-
答案:Go中单例模式通过包级变量、sync.Once或互斥锁实现,推荐使用sync.Once确保线程安全与延迟初始化,饿汉模式适用于轻量场景,init函数用于启动时初始化,实际需权衡初始化时机与性能。115 收藏
-
gomodgraph命令可查看Go项目依赖关系,输出格式为“依赖源->依赖目标”,结合dot工具可生成可视化依赖图,配合grep和awk能筛选特定依赖或反向查找引用,常用于排查版本冲突、识别冗余依赖、理解项目结构及安全审计。114 收藏
-
首先检查protoc是否安装,通过终端输入protoc--version确认;若未安装,根据操作系统选择对应安装方式;接着安装Go的protoc-gen-go插件,并确保$GOPATH/bin或$GOBIN已加入PATH环境变量,避免“protoc-gen-go:programnotfound”错误;编写.proto文件后,使用protoc--go_out=.命令生成Go代码,结合gRPC时还需安装protoc-gen-go-grpc插件并使用--go-grpc_out=.参数;注意通过GoModules113 收藏