Goland使用delve进行远程调试
为什么要远程调试有些时候,本地的环境跟线上环境不一致,比如本地开发在windows,而实际上项目运行可能需要Linux环境,再比如在调试服务的时候,本地无法模拟出各种线上的环境,比如数据库,注册发现等等,甚至,网络环境线上和线下环境不一致,因此,这个时候,我们就需要远程调试了。什么是delve说白了,这个是一个Golang的调试工具,具体可看官方解释:Delve is a debugger ...
为什么要远程调试有些时候,本地的环境跟线上环境不一致,比如本地开发在windows,而实际上项目运行可能需要Linux环境,再比如在调试服务的时候,本地无法模拟出各种线上的环境,比如数据库,注册发现等等,甚至,网络环境线上和线下环境不一致,因此,这个时候,我们就需要远程调试了。什么是delve说白了,这个是一个Golang的调试工具,具体可看官方解释:Delve is a debugger ...
安装到官网选择需要的版本(此处以1.18为例)https://go.dev/dl/复制下载地址,wget下载wget https://go.dev/dl/go1.18.linux-amd64.tar.gz解压到 /usr/localsudo tar -C /usr/local -zxvf go1.18.linux-amd64.tar.gz创建 GOPATH目录mkdir ~/go设置环境变量...
逛Stackoverflow的时候,发现了一个很有趣的话题:When is the init() function run?init()函数是什么时候执行的,由此,引出了一个问题:Golang在导入包的时候,各个部分的执行顺序是什么。答案:import --> const --> var --> init()后面有大佬也给出了一张图,我觉得很经典:测试代码:package ...
make和 new都用于分配内存,不同的是,make只能用于 slice、map、channel 这三种数据类型的内存创建那么他们还有什么不同吗,且听我娓娓道来分配内存要说到这两个的区别,我们还得从分配内存讲起。众所周知,在Golang中,如果我们声明了一个指针,而没有为其分配内存空间,那么是无法修改其值的,例如如下代码:package main import "fmt"...