之前学习用的都是在线的平台,然后现在在本地装了Go,打算跟随教程(https://golang.google.cn/doc/tutorial/getting-started)尝试在本地运行程序。
1. Hello World!
1.1 初始化
学习任何一门语言都从简单的Hello World!程序开始。
我这里是Windows10的系统,用到的是VScode和命令行。
首先在命令行进入到自己的工作路径:
cd %HOMEPATH%
然后建立一个代码目录,这里就跟随着教程叫hello:
mkdir hello
cd hello
然后是一个我感觉是Go特色的操作——为代码启用依赖项跟踪。主要就是用到go.mod文件,它可以管理代码用到的模块,将需要的模块添加,去掉不依赖的模块。
go mod init example/hello
这里的eample/hello是一个模块命名,是自定义的,具体的命名规则可以参照https://golang.google.cn/doc/modules/managing-dependencies#naming_module。
运行结果:
1.2 程序实现
初始化完毕后,用VScode编辑器在hello目录里新建一个hello.go程序,输入如下代码:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
这就是Hello,World!程序的全部代码。
1.3 运行
在教程中,运行的时候是让在命令行输入如下代码:
go run .
然后就会输出Hello, World!如下图:
注意这里run的后面是一个点,根据之前的代码经验,一个点其实表示的是当前目录里的所有文件,这适用于当前的hello目录仅仅是实现Hello,World!程序的目录,如果当前目录包含其他的go文件,我们可能会运行我们并不想运行的程序。
所以可以尝试
go run hello.go
同样可以得到结果,并且意思更明确。
2. 另一个程序:quote
2.1 包查找
这里例子主要是为了尝试使用外部的包,所以首先查找我们想用的包:
- 访问pkg.go.dev然后搜索quote
- 点击搜索结果
- 查看包的路径
比如说,我们找到想要用的这个quote包的结果如下:
可以看到它的包路径就是rsc.io/quote,并且有一些方法:
2.2 编写程序
同样我们可以新建一个程序quote.go,输入如下代码:
2.3 运行
这里用到了外部的包,也就是我们代码的依赖项,还记得go.mod吗,是用来管理依赖项的,所以我们用到的东西也有必要先让go.mod知道。
在命令行执行:
go mod tidy
此时可能会和我一样报错:
这里可以参考https://blog.csdn.net/destiny503/article/details/132874583提供的解决方案,首先在命令行执行:
go env -w GOPROXY=https://goproxy.cn
然后再执行go mod tidy就可以得到正常结果:
最后按照我们的方法运行程序得到正常输出: