GVM(Go Version Manager)是一款用于管理和切换不同Go语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个Go版本,同时还能确保项目之间的依赖关系井然有序。GVM的主...
goland配置proto文件搜索路径
默认情况下,goland(jetbrains家的软件:idea、pycharm、phpstorm以及webstorm都是一样)安装protobuf插件后只会在一个特定的库路径下搜索proto文件。如果...
国内几个优质的Go Module代理仓库服务
一、简介 go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get无法在线获取到仓库,...
Golang中glog库的使用方法
一、关于glog库 golang中的glog库是google著名开源C++日志库glog的golang版本,在golang默认日志库的基础上做了更进一层的封装使得该库能更贴近日常使用。项目首页为gol...
几个golang面试题及解析
一、以下代码的输出内容为 [crayon-66ded560823eb596316049/] 答案 [crayon-66ded560823f4784124168/] 解析 考查defer和panic组合...
Golang等待组sync.WaitGroup的用法
一、waitgroup介绍 多线程编程中,经常会遇到这样的一种场景:main函数中为了等待其他线程执行完,在return之前都要执行sleep以争取更多的时间给其他线程执行。例如: [crayon-6...
Golang开发中常见的坑(一):interface相关
0x01 以下代码能通过编译吗 [crayon-66ded5608373b330152549/] 不能通过编译,因为类型man没有实现user接口,实现say方法的是*man类型,两者不能统一。 把f...
Golang 内存逃逸分析
0x01 什么是逃逸 第一次听说逃逸是在雨痕学堂,一脸懵逼的百度了半天也没找到一个明确的说法,直到昨天在论坛上看到一篇关于变量逃逸的文章才明白。 因为函数都是运行在栈上的,在栈声明临时变量分配内存,函...
Golang使用RemoteAddr()获取远程主机地址的注意事项
一、问题描述 http.Request下的方法RemoteAddr()可以获取客户端的地址和端口号,最近的一个项目中用到了这个方法。 使用过程中一直都没有什么问题,但是当项目上线之后就发现不管怎么获取...
Go pprof的使用
一、概述 go的pprof工具可以用来监测进程的运行数据,用于监控程序的性能,对内存使用和CPU使用的情况统信息进行分析。 官方提供了两个包:runtime/pprof和net/http/pprof,...