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
这句话里边应该是没有指定输出目录,所以直接在当前文件夹里找,找不到也许就在源文件的文件夹里。运行成果如下:
跑通了再分析每一行在干什么。
榜首行意思应该是我这段代码如果编译的话生成的包名应该叫什么,之后 fmt
被导入,这个包是格式化输入输出相关函数的,之后的主程序里边就要用到,这儿先导入了。
主程序里也很简单,打印一行字符串,这个打印函数便是之前导入的包里边的。
这个程序打开的一起我也在装置插件,两件事一起干,插件装置好了但是插件引荐的包没装置上,不过这不影响我跑通了 Hello World
程序。
环境配置的后续
打开了一个相关文件以后 VS Code 就给我引荐了这个插件,那么装置就好了。
然后这个扩展过了一会给我引荐了几个需求装置的包,在右下角,点击全部装置就好了。
能够看到输出显示超时了,那么仍是需求配置一下之前的那个 goproxy 的。(前面想着应该不至于连不上,然后网络就寄了)
装置不了的话会报这个,先把网络配好再理它。
goproxy 配置
打开终端并履行
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
完成。
重新装置扩展引荐的包
这两个包应该是叫 gopls
和 go-outline
,调查之前的输出:
前六个是 gopls
的依靠,最终一个是这个包自身。
这七个包的报错信息完了以后才是之后的输出,那么最终 go-outline
这个包要不然便是没其他依靠,要不然便是依靠现已被包括在前面的那些依靠里边了。
验证一下自己的猜测,每个项目里的 go.mod
记录的便是项目依靠,依照报错信息找到对应的库房:
gopls
和 go-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-outline
了,现在我装的是最新版本的 go
,这个包是给老版本 go
代码用的。
这样的话应该没啥问题了吧,再有要装的插件再说好了。