diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/Go Module.md" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/Go Module.md" index bc371f02d48..43a0bdc9b95 100644 --- "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/Go Module.md" +++ "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/Go Module.md" @@ -7,7 +7,7 @@ keywords: [Go Module,GoFrame,包管理工具,依赖管理,go.mod,Goland IDE,vgo, description: 'Go Module这一包管理工具的使用方法,涵盖了如何通过Goland IDE和命令行进行依赖管理,并提供了设置go.mod文件及使用代理下载GoFrame框架的实用指导。通过开启Go Module特性和选择适当的Proxy地址,能够高效管理项目包依赖,从而提升开发效率。' --- -`Go Module` 是从Go版本 `1.11.1` 开始官方提供的包管理工具,用于解决Go项目的包管理及依赖,类似于PHP的 `composer`、Nodejs的 `npm`。本章节会对 `Go Module` 的一些常用的实用的命令/设置进行介绍,更详细的介绍请查看官方文档: [https://github.com/golang/go/wiki/Modules](https://github.com/golang/go/wiki/Modules) +`Go Module` 是从Go版本 `1.11.1` 开始官方提供的包管理工具,用于解决`Go`项目的包管理及依赖,类似于`PHP`的 `composer`、`Nodejs`的 `npm`。本章节会对 `Go Module` 的一些常用的实用的命令/设置进行介绍,更详细的介绍请查看官方文档: [https://github.com/golang/go/wiki/Modules](https://github.com/golang/go/wiki/Modules) ## 关于 `go.mod` @@ -16,108 +16,90 @@ description: 'Go Module这一包管理工具的使用方法,涵盖了如何通 1. 当前项目名( `module`)是什么。每个项目都应该设置一个名称,当前项目中的包( `package`)可以使用该名称进行相互调用。 2. 当前项目依赖的第三方包名称。项目运行时会自动分析项目中的代码依赖,生成 `go.sum` 依赖分析结果,随后go编译器会去下载这些第三方包,然后再编译运行。 -我们将之前的 `hello world` 项目做一些改变,增加一个 `go.mod` 文件(也可以在项目根目录下使用 `go mod init 项目名称` 命令初始化项目生成该文件),内容如下: +我们可以看到之前的 `hello world` 项目下有一个自动生成的 `go.mod` 文件,其内容如下: ```go -module my-hello +module hello ``` -其中, `my-hello` 为当前项目的名称,可以随意设置。 - -就这样简单便完成了项目的 `module` 初始化。 - -一般情况下, `go.sum` 依赖分析文件应当被添加到版本管理中随着 `go.mod` 文件一起提交。 +其中, `hello` 为当前项目的名称,在我们初始化项目的时候`Goland IDE`自动帮助我们生成了该文件,默认情况下该`module`的名称为目录的名称,该名称可以随意设置。 ## 使用 `go.mod` -使用 `go.mod` 意即用 `go.mod` 进行项目依赖管理。我们有两种 `go.mod` 的 **使用方式**: `IDE-vgo` 和 `命令行` 方式。以下我们通过下载使用 `GoFrame` 框架来演示如何使用这两种方式来管理依赖。 - -> 如果需要 `Goland` IDE支持 `go.mod`,必须要打开 `vgo` 的支持(包括代码依赖检测)。这两种使用方式的区别仅仅是下载依赖包的方式不同。 -### 使用Goland IDE vgo(推荐) +### 使用Goland IDE -`vgo` 是基于 `Go Module` 规范的包管理工具,同官方的 `go mod` 命令工具类似。 +1. 设置 `Goland` 启用 `Go Module`特性 -1. 设置 `Goland` 启用 `vgo` + ![alt text](QQ_1733020920028.png) -![](/markdown/f3f9552ca0703fb4e88ae2958b58815c.png) + 在下载第三方依赖包时,您需要科学上网。笔者本地设置了一个环境变量`GOPROXY`用于科学上网拉取依赖: -如果您本地环境已经有 `VPN` 功能,那么可以忽略 `proxy` 的设置。 + ```bash + GOPROXY=https://goproxy.cn + ``` -其中 `Proxy` 请输入代理地址下载依赖包,如果选择 `direct` 表示不使用代理。可选择的反向代理地址有: + 如果您本地环境已经有 `VPN` 功能,那么可以忽略 `GOPROXY` 的设置,可以添加`direct` 后缀表示不使用代理。 + ```bash + GOPROXY=https://goproxy.cn,direct + ``` - - `https://goproxy.cn` - - `https://goproxy.io` - - `https://mirrors.aliyun.com/goproxy/` + 其中 `GOPROXY` 请输入代理地址下载依赖包,常见的`GOPROXY`反向代理地址有: -详见Go官网说明: [https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies](https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies) + - `https://goproxy.cn` + - `https://goproxy.io` + - `https://mirrors.aliyun.com/goproxy/` -这里请务必选择一个代理地址输入。 + 详见Go官网说明: [https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies](https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies) + 2. 手动修改 `go.mod` 文件如下: -```go -module my-hello - + ```go + module hello -require github.com/gogf/gf latest -``` - -增加 `GoFrame` 框架的依赖,其中 `latest` 表示使用最新版本,IDE将会立即去更新下载框架代码。成功后,IDE将会修改 `go.mod` 文件并生成 `go.sum` 依赖分析文件。 + require github.com/gogf/gf/v2 latest + ``` -![](/markdown/cb698537b6d68707fb4c1284530d9f90.png) + 增加 `GoFrame` 框架的依赖,其中 `latest` 表示使用`github.com/gogf/gf/v2`最新版本,`IDE`将会立即去更新下载框架代码。成功后,`IDE`将会修改 `go.mod` 文件并生成 `go.sum` 依赖分析文件。该`go.sum`文件为该项目所有的第三方依赖,通常也应该推送到版本管理仓库中。 3. 随后 `go.mod` 文件被自动更新为: -```go -module my-hello + ```go + module hello + require github.com/gogf/gf/v2 v2.8.1 + ``` -require github.com/gogf/gf v1.6.13 -``` - -其中 `v1.6.13` 表示vgo检测到的最新框架版本。 - -4. 如果下载最新代码框架后出现下图情况: [https://www.jetbrains.com/help/go/create-a-project-with-vgo-integration.html](https://www.jetbrains.com/help/go/create-a-project-with-vgo-integration.html) - -![](/markdown/6c6bad791c9e0eee3c740f9cda0ea5c4.png) - -5. 请按快捷键 `⌥(option)+↩(return)` 或者 鼠标右键, 选择 `Sync packages of my-hello` - -![](/markdown/cf02717043547f5e1bf0a14b31d40b1c.png) - -6. 随后等待几秒钟之后, 可以看到左侧的 `Go Module` 已经有内容,并且中终端自动输出了下载的框架版本 - -![](/markdown/955367cd46f617411d664c5baa8af9ce.png) + 其中 `v2.8.1` 表示`Go Module`检测到的最新框架版本。 ### 使用命令行 1. 打开 `Terminal`,在项目根目录下执行: -```bash -export GO111MODULE=on GOPROXY=https://goproxy.cn; go get -u github.com/gogf/gf -``` + ```bash + export GO111MODULE=on GOPROXY=https://goproxy.cn; go get -u github.com/gogf/gf/v2 + ``` -该命令将会立即下载最新稳定版本的 `GoFrame` 框架。其中 `export GO111MODULE=on;` 表示开启 `Go Module` 特性(Go `1.11.x` 版本默认关闭,需要手动开启), `export GOPROXY=https://goproxy.cn` 表示使用代理下载,原因你懂的,并且也能极大提高依赖包下载速度。代理地址也可使用: + 该命令将会立即下载最新稳定版本的 `GoFrame` 框架。其中 `export GO111MODULE=on;` 表示开启 `Go Module` 特性(Go `1.11.x` 版本默认关闭,需要手动开启), `export GOPROXY=https://goproxy.cn` 表示使用代理下载,原因你懂的,并且也能极大提高依赖包下载速度。代理地址也可使用: - - `https://goproxy.cn` - - `https://goproxy.io` - - `https://mirrors.aliyun.com/goproxy` + - `https://goproxy.cn` + - `https://goproxy.io` + - `https://mirrors.aliyun.com/goproxy` -![](/markdown/2274104a3ec3a6d2ac7ea35ad374c85c.png) 2. 随后 `go.mod` 文件内容被自动更新为: -```go -module my-hello + ```go + module hello -require github.com/gogf/gf v1.6.13 // indirect -``` + require github.com/gogf/gf/v2 v2.8.1 + ``` -且生成了新的 `go.sum` 依赖分析文件,该文件充其量算是一个临时文件,对于我们平时开发工作来说意义不大。 + 且生成了新的 `go.sum` 依赖分析文件。 diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020124554.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020124554.png" new file mode 100644 index 00000000000..33ce2c0b51e Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020124554.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020331260.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020331260.png" new file mode 100644 index 00000000000..d03889f8013 Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020331260.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020422698.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020422698.png" new file mode 100644 index 00000000000..005cd5e74ae Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020422698.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020474019.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020474019.png" new file mode 100644 index 00000000000..99f2b51479b Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020474019.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020511081.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020511081.png" new file mode 100644 index 00000000000..d75b6b4e1ee Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020511081.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020920028.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020920028.png" new file mode 100644 index 00000000000..2422c9ba929 Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733020920028.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733023014586.png" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733023014586.png" new file mode 100644 index 00000000000..02adef8f46a Binary files /dev/null and "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/QQ_1733023014586.png" differ diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md" index 5cc7548ff89..57ba5d52489 100644 --- "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md" +++ "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256.md" @@ -9,33 +9,35 @@ description: '在GoFrame框架下开发环境的配置,主要包括Go语言的 ## Go环境变量 -为方便开发,在开发环境往往需要设置三个环境变量: +为方便开发,在开发环境往往需要设置三个环境变量: -1. `$GOROOT`: `go` 的安装目录,配置后不会再更改; -2. `$GOPATH`: `go` 项目在本地的开发环境的的项目根路径(以便项目编译, `go build`, `go install`),不同的项目在编译的时候该环境变量可以不同; -3. `$PATH`(重要):需要将 `go` 的 `bin` 目录添加到系统 `$PATH` 中以便方便使用go的相关命令,配置后也不会再更改; +1. `$GOROOT`: `go` 的安装目录,配置后不会再更改; +2. `$GOPATH`: `go` 项目在本地的开发环境的的项目根路径(以便项目编译, `go build`, `go install`),不同的项目在编译的时候该环境变量可以不同; +3. `$PATH`(重要):需要将 `go` 的 `bin` 目录添加到系统 `$PATH` 中以便方便使用go的相关命令,配置后也不会再更改; -Go的环境变量在官方文档中也有详情的说明,请参考链接: [https://golang.google.cn/doc/install/source](https://golang.google.cn/doc/install/source) +`Go`的环境变量在官方文档中也有详情的说明,请参考链接: [https://golang.google.cn/doc/install/source](https://golang.google.cn/doc/install/source) -> 环境变量中的 `$GOOS` 和 `$GOARCH` 是比较实用的两个变量,可以用在不同平台的交叉编译中,只需要在 `go build` 之前设置这两个变量即可,这也是go语言的优势之一:可以编译生成跨平台运行的可执行文件。感觉比QT更高效更轻量级,虽然生成的可执行文件是大了一点,不过也在可接受的范围之内。 例如,在 `Linux amd64` 架构下编译 `Windows x86` 的可执行文件,可以使用如下命令: -> -> ``` -> CGO_ENABLED=0 GOOS=windows GOARCH=386 go build hello.go -> ``` -> -> 遗憾的是交叉编译暂不支持 `cgo` 方式,因此需要将环境变量 `$CGO_ENABLED` 设置为0,这样执行之后会在当前目录生成一个 `hello.exe` 的 `windows x86` 架构的可执行文件。 +:::tip +环境变量中的 `$GOOS` 和 `$GOARCH` 是比较实用的两个变量,可以用在不同平台的交叉编译中,只需要在 `go build` 之前设置这两个变量即可,这也是`Go`语言的优势之一:可以编译生成跨平台运行的可执行文件。例如,在 `Linux amd64` 架构下编译 `Windows x86` 的可执行文件,可以使用如下命令: + +``` +CGO_ENABLED=0 GOOS=windows GOARCH=386 go build hello.go +``` + +遗憾的是交叉编译暂不支持 `cgo` 方式,因此需要将环境变量 `$CGO_ENABLED` 设置为`0`,这样执行之后会在当前目录生成一个 `hello.exe` 的 `windows x86` 架构的可执行文件。 +::: ### 环境变量设置 除了 `$PATH` 环境外,其他环境变量都是可选的。 -为什么说这个步骤可选呢?因为未来的 `Go` 版本慢慢开始移除对 `$GOPATH`/ `$GOROOT` 的支持。此外,在 `Goland` 这个IDE中集成有 `Terminal` 功能,直接使用这个功能中已经设置好了环境变量。 +为什么说这个步骤可选呢?因为未来的 `Go` 版本慢慢开始移除对 `$GOPATH`/ `$GOROOT` 的支持。此外,在 `Goland` 这个`IDE`中集成有 `Terminal` 功能,直接使用这个功能中已经设置好了环境变量。 -![](/markdown/ba5f3276cff792caf62056ba0ee5987d.png) +![alt text](QQ_1733023014586.png) ### `*nix` 下设置环境变量 -在 `*nix` 系统下( `Linux/Unix/MacOS/*BSD` 等等),需要在 `/etc/profile` 中增加以下环境变量设置后,执行命令 `#source /etc/profile` 重新加载profile配置文件(或重新登录),将以下变量添加到用户的环境变量中: +在 `*nix` 系统下(`Linux/Unix/MacOS/*BSD` 等等),需要在 `/etc/profile` 中增加以下环境变量设置后,执行命令 `#source /etc/profile` 重新加载profile配置文件(或重新登录),将以下变量添加到用户的环境变量中: ```bash export GOROOT=/usr/local/go @@ -45,7 +47,7 @@ export PATH=$GOPATH/bin:$GOROOT/bin:$PATH ### `Windows` 下设置环境变量 -Windows如何修改系统环境变量,以及修改环境变量 `PATH`,请参考网上教程( [百度](https://www.baidu.com/s?wd=Windows%20%E4%BF%AE%E6%94%B9%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%20PATH) 或 [Google](https://www.google.com/search?q=Windows+修改系统环境变量+PATH))。 +`Windows`如何修改系统环境变量,以及修改环境变量 `PATH`,请参考网上教程( [百度](https://www.baidu.com/s?wd=Windows%20%E4%BF%AE%E6%94%B9%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%20PATH) 或 [Google](https://www.google.com/search?q=Windows+修改系统环境变量+PATH))。 ## IDE工具配置 @@ -62,13 +64,13 @@ Windows如何修改系统环境变量,以及修改环境变量 `PATH`,请参 由于这三个工具是 `Goland` 自带的,因此配置比较简单,参考以下图文操作示例: -1. 在 `Goland` 的设置中,选择 `Tools` \- `File Watchers`,随后选择添加 +1. 在 `Goland` 的设置中,选择 `Tools` - `File Watchers`,随后选择添加 -![](/markdown/beffdaf59725b7091d27c05db1cbef06.jpg) + ![](/markdown/beffdaf59725b7091d27c05db1cbef06.jpg) 2. 依次点击添加这3个工具,使用默认的配置即可 -![](/markdown/23d9056527febe75f82dcc8117f086fd.jpg) + ![](/markdown/23d9056527febe75f82dcc8117f086fd.jpg) 3. 随后在撸代码的过程中保存代码文件时将会自动触发这3个工具的自动检测。 @@ -96,23 +98,30 @@ go install #### `golint` 的配置 -1. 随后在 `Goland` 的 `Tools` \- `File Watchers` 配置下,通过复制 `go fmt` 的配置 +1. 随后在 `Goland` 的 `Tools` - `File Watchers` 配置下,通过复制 `go fmt` 的配置 -![](/markdown/d6e625d79c63024347705acfc013463c.jpg) + ![](/markdown/d6e625d79c63024347705acfc013463c.jpg) -2. 修改 `Name`, `Program`, `Arguments` 三项配置,其中 `Arguments` 需要加上 `-set_exit_status` 参数,如图所示: +2. 修改 `Name`, `Program`, `Arguments` 三项配置,其中 `Arguments` 需要加上 `-set_exit_status` 参数,如图所示: -![](/markdown/219fe697e559aa6980100557996686a0.jpg) + ![](/markdown/219fe697e559aa6980100557996686a0.jpg) 3. 保存即可,随后在代码编写中执行保存操作时将会自动触发 `golint` 工具检测。 ### `golangci-lint` 的配置(可选) -1.  随后在 `Goland` 的 `Tools` \- `File Watchers` 配置下,通过复制 `go fmt` 的配置![](/markdown/267c777a8db90758dd8bad6013f60d7e.png) -2. 修改 `Name`, `Program`, `Arguments` 三项配置,其中 `Arguments` 需要加上 `run $FileDir$` 参数, `注意:` 如 \`Advanced Options\`的选项可以在机器比较慢的时取消选择,如图所示:![](/markdown/5bf774ae9e6d123efa9010dd223a618a.png) +1.  随后在 `Goland` 的 `Tools` \- `File Watchers` 配置下,通过复制 `go fmt` 的配置 + ![](/markdown/267c777a8db90758dd8bad6013f60d7e.png) +2. 修改 `Name`, `Program`, `Arguments` 三项配置,其中 `Arguments` 需要加上 `run $FileDir$` 参数, `注意:` 如 `Advanced Options`的选项可以在机器比较慢的时取消选择,如图所示: + ![](/markdown/5bf774ae9e6d123efa9010dd223a618a.png) + 3. 保存即可,随后在代码编写中执行保存操作时将会自动触发 `golangci-lint` 工具检测。 -4. 通过 `go Linter` 插件管理 `golangci-lint` 工具的配置,如下是 `go Linter` 的安装以及配置。![](/markdown/0f0fbd2a3a937573cdc317bbe005a6cf.png)![](/markdown/1c10390d9bfca56c0528f43f122b9ebd.png) + +4. 通过 `go Linter` 插件管理 `golangci-lint` 工具的配置,如下是 `go Linter` 的安装以及配置。 + ![](/markdown/0f0fbd2a3a937573cdc317bbe005a6cf.png) + + ![](/markdown/1c10390d9bfca56c0528f43f122b9ebd.png) ## IDE代码风格配置 diff --git "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\347\216\257\345\242\203\345\256\211\350\243\205.md" "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\347\216\257\345\242\203\345\256\211\350\243\205.md" index c580657ba88..bb9a338ff95 100644 --- "a/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\347\216\257\345\242\203\345\256\211\350\243\205.md" +++ "b/docs/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\207\206\345\244\207\345\267\245\344\275\234/\347\216\257\345\242\203\345\256\211\350\243\205.md" @@ -13,7 +13,7 @@ description: '手把手的Golang开发环境和IDE配置教程,适合Golang初 ### Step1 - 下载Go开发包 -访问Go国内镜像站下载页面 [https://golang.google.cn/dl/](https://golang.google.cn/dl/),并在页面最上方的版本中选择你当前的系统版本,会下载最新版本的Go开发包: +访问`Go`国内镜像站下载页面 [https://golang.google.cn/dl/](https://golang.google.cn/dl/),并在页面最上方的版本中选择你当前的系统版本,会下载最新版本的`Go`开发包: ![](/markdown/d3ce7f0e43ebf678adea8db4c46662d5.png) @@ -29,11 +29,11 @@ Windows( `msi`)和MacOS( `pkg`)推荐使用安装包的方式来安装。作者 ![](/markdown/f3f59daf118e34e16a920bcdcf6391de.png) -Go的开发包升级也是同样的过程。 +`Go`的开发包升级也是同样的过程。 ## IDE开发环境安装 -目前 `Go` 的 `IDE` 有两款比较流行,一款是 `VSCode+Plugins`(免费),另一款是 `JetBrains` 公司的 `Goland`(收费)。由于 `JetBrains` 也是 `GoFrame` 框架的赞助商,因此我们优先推荐使用 `Goland` 来作为开发IDE,下载及注册请参考网上教程( [百度](https://www.baidu.com/s?wd=goland%20安装) 或 [Google](https://www.google.com/search?q=goland+安装))。 +目前 `Go` 的 `IDE` 有两款比较流行,一款是 `VSCode+Plugins`(免费),另一款是 `JetBrains` 公司的 `Goland`(收费)。由于 `JetBrains` 也是 `GoFrame` 框架的赞助商,因此我们这里优先推荐使用 `Goland` 来作为开发IDE,下载及注册请参考网上教程( [百度](https://www.baidu.com/s?wd=goland%20安装) 或 [Google](https://www.google.com/search?q=goland+安装))。 `JetBrains` 的官方网站为: [https://www.jetbrains.com](https://www.jetbrains.com/?from=GoFrame) @@ -51,11 +51,11 @@ Go的开发包升级也是同样的过程。 其中的 `Location` 随意选择一个本地路径即可。 -![](/markdown/0520c06f4ba6cb8411ffe09eb0713a26.png) +![alt text](QQ_1733020124554.png) #### Step3. 创建程序 -新建一个 `go` 文件,叫做 `hello.go`,并输入以下代码: +编辑 `main.go`,并输入以下代码: ```go package main @@ -67,24 +67,24 @@ func main() { } ``` -![](/markdown/c3c0ce22f357637b39e7656733d91983.png) +![alt text](QQ_1733020331260.png) #### Step4. 执行运行 -菜单栏 `Run` \- `Run` \- `go build hello.go`。 +菜单栏 `Run` - `Run` - `go build hello.go`。 -![](/markdown/a4dc00babf5b34dcc081b916b83713b8.png) +![alt text](QQ_1733020422698.png) -![](/markdown/80d5fbefe18582fcbbf6f7c34cdff35a.png) +![alt text](QQ_1733020474019.png) -![](/markdown/ecb56b2f0bb37809e2fd11f89e667566.png) +![alt text](QQ_1733020511081.png) 恭喜你,第一个 `Go` 程序便成功了! ### VSCode的使用 -#### [Step1.下载安装](https://code.visualstudio.com/) +#### [Step1 - 下载安装](https://code.visualstudio.com/) -#### [Step2.安装Go扩展](https://docs.microsoft.com/zh-cn/learn/modules/go-get-started/4-install-visual-studio-code?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.go-first-steps) +#### [Step2 - 安装Go扩展](https://docs.microsoft.com/zh-cn/learn/modules/go-get-started/4-install-visual-studio-code?ns-enrollment-type=learningpath&ns-enrollment-id=learn.languages.go-first-steps) -#### [Step3.HelloWorld](https://docs.microsoft.com/zh-cn/learn/modules/go-get-started/5-hello-world) \ No newline at end of file +#### [Step3 - Hello World](https://docs.microsoft.com/zh-cn/learn/modules/go-get-started/5-hello-world) \ No newline at end of file