Go 的 Hello World

package main
import (
	"fmt"
)
func main() {
	fmt.Println("hello world")
}

要运行的话直接:

go run example/01-hello/main.go

要想先编译再运行编译成果:

go build example/01-hello/main.go

这句话里边应该是没有指定输出目录,所以直接在当前文件夹里找,找不到也许就在源文件的文件夹里。运行成果如下:

Go 语言基础(2) | 青训营笔记

跑通了再分析每一行在干什么。

榜首行意思应该是我这段代码如果编译的话生成的包名应该叫什么,之后 fmt 被导入,这个包是格式化输入输出相关函数的,之后的主程序里边就要用到,这儿先导入了。

主程序里也很简单,打印一行字符串,这个打印函数便是之前导入的包里边的。

这个程序打开的一起我也在装置插件,两件事一起干,插件装置好了但是插件引荐的包没装置上,不过这不影响我跑通了 Hello World 程序。

环境配置的后续

打开了一个相关文件以后 VS Code 就给我引荐了这个插件,那么装置就好了。

Go 语言基础(2) | 青训营笔记

然后这个扩展过了一会给我引荐了几个需求装置的包,在右下角,点击全部装置就好了。

Go 语言基础(2) | 青训营笔记

能够看到输出显示超时了,那么仍是需求配置一下之前的那个 goproxy 的。(前面想着应该不至于连不上,然后网络就寄了)

装置不了的话会报这个,先把网络配好再理它。

Go 语言基础(2) | 青训营笔记

goproxy 配置

打开终端并履行

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

完成。

重新装置扩展引荐的包

这两个包应该是叫 goplsgo-outline,调查之前的输出:

Go 语言基础(2) | 青训营笔记

前六个是 gopls 的依靠,最终一个是这个包自身。

Go 语言基础(2) | 青训营笔记

这七个包的报错信息完了以后才是之后的输出,那么最终 go-outline 这个包要不然便是没其他依靠,要不然便是依靠现已被包括在前面的那些依靠里边了。

验证一下自己的猜测,每个项目里的 go.mod 记录的便是项目依靠,依照报错信息找到对应的库房:

goplsgo-outline

gopls 的依靠如下:

module golang.org/x/tools/gopls
go 1.18
require (
github.com/google/go-cmp v0.5.9
github.com/jba/printsrc v0.2.2
github.com/jba/templatecheck v0.6.0
github.com/sergi/go-diff v1.1.0
golang.org/x/mod v0.7.0
golang.org/x/sync v0.1.0
golang.org/x/sys v0.2.0
golang.org/x/text v0.4.0
golang.org/x/tools v0.3.1-0.20221213193459-ca17b2c27ca8
golang.org/x/vuln v0.0.0-20221109205719-3af8368ee4fe
gopkg.in/yaml.v3 v3.0.1
honnef.co/go/tools v0.3.3
mvdan.cc/gofumpt v0.4.0
mvdan.cc/xurls/v2 v2.4.0
)
require golang.org/x/exp v0.0.0-20221031165847-c99f073a8326 // indirect
require (
github.com/BurntSushi/toml v1.2.1 // indirect
github.com/google/safehtml v0.1.0 // indirect
golang.org/x/exp/typeparams v0.0.0-20221031165847-c99f073a8326 // indirect
)

然后 go-outline 的依靠如下:

module github.com/ramya-rao-a/go-outline
go 1.16
require golang.org/x/tools v0.1.1

如同和我幻想的不太一样,我认为便是和装置的包名是对应的,其时总共只要八个包没装置成功啊,难道说是要一层一层走的,榜首层没过后面就先不管了?其时没装置成功的包名是 gotests, gomodifytags, impl, goplay, dlv, staticcheck, gopls, go-outline。之后学了更多再验证这个事情吧。

回到正题,配置好 goproxy 拉包到本地应该没问题了,这回再试试。

2023/05/14 更新,gopls 装置成功,截图如下:

Go 语言基础(2) | 青训营笔记

依据插件的官方文档,我应该不需求再装置 go-outline 了,现在我装的是最新版本的 go,这个包是给老版本 go 代码用的。

Go 语言基础(2) | 青训营笔记

这样的话应该没啥问题了吧,再有要装的插件再说好了。