Go语言的实际应用
Go语言,又称Golang,是一个多用途的编程语言,适用于各种编程需求。它在以下领域尤为突出:
- 服务器编程:Go语言能够胜任C和C++的工作,且运行速度相当。
- 网络编程:适合构建Web应用等。
- 并发与分布式编程:特别适合游戏服务器开发,提供高效的开发流程
Go语言的常见挑战
在工作中,许多人都会接触到使用Golang开发的项目。面对这些现成的项目,我们往往希望能迅速启动并运行它们,这样就可以直观地理解项目的架构和逻辑。但对于初次接触Golang或者其特定框架的人来说,这个过程可能并不容易。接下来,我将分享一些我在启动项目过程中遇到的典型问题以及解决办法,希望这些内容对你遇到类似问题时能提供一些灵感和帮助。
解决IDEA中的包导入问题
在启用Go modules后,可能会遇到包导入显示红色的问题,尽管程序能正常运行。
对于有强迫症的人来说,简直无法忍受,那么如何解决飘红报错呢
解决方案涉及IDEA的两种包信息获取方式:
- GOPATH:IDEA扫描$GOPATH目录构建包索引。
- Go Modules:IDEA运行
go list -m -json
解析依赖,扫描$GOPATH/pkg/mod目录(默认GOMODCACHE)。
详细解决方法参考:StackOverflow链接
IDEA无法调试golang项目
1、问题背景
直接在idea运行代码没有问题,但是启动调试器时,执行流不会在设定的断点处停下来,终端提示如下:
2024-01-30T15:11:13+08:00 error layer=debugger could not patch runtime.mallogc: no type entry found, use 'types' for a list of valid types
2、原因分析
系统安装的GoLang版本是 1.21.6
go version go1.21.6 darwin/amd64
idea自带的delve版本为:
Delve Debugger Version: 1.7.0 Build: b41e47a30539294818283b89dae4d4879242e0c5
3、解决方法
终端没有显示有关于delve的异常,也没有提示版本过低,不过不妨碍尝试升级delve版本,mac升级方法:
$ git clone https://github.com/go-delve/delve
$ cd delve
$ git checkout -b release-v1.20.2 v1.20.2
$ go install github.com/go-delve/delve/cmd/dlv
接着,在 GoLang 中依次点击菜单栏的 “Help -> Edit Custom Properties”。
在弹出的文本编辑器中,新增一行赋值命令。
path为安装目录
golang进程名
项目启动后初学者可能不知道怎么找对应进程名,在mac可以根据端口查找进程,如你的系统为9010,命令如下:
sudo lsof -ti :9010
golang的进程名称就是配置的Name
直接在任务管理器找go build main.go就可以了