前言#
昨天我们安装好了go环境以及vscode拓展
今天我们来开启go的旅程
Getting Start!#
我们创建一个go_study的文件夹,然后进去
mkdir go_study
mkdir go_study/day1
cd go_study/day1 接着我们执行go mod初始化指令[2]
go mod init example/hello然后你的文件夹中就会生成一个go.mod文件

这个文件的作用简单来说类似package.json,用来管理依赖的。
而example/hello是我们的这个module自身的名字和路径,如果别人想下载我们的这个module,那么我们得定义路径这个go的工具才能知道从哪下载,比如github.com/hello,具体可以看Managing dependencies
然后我们在同目录下创建hello.go文件
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
} - 我们定义了一个
main的包,一个包是一种组织函数的方式,它由这个仓库(directory)中所有文件组合而成。 - 导入了
fmt这个包,看名字就知道它是用来格式化文本的,同时它还提供了打印console的方法。这个包是标准库中的一个包,所以并不需要我们去下载,内置的。 - 实现了一个
main的函数,它里面打印了hello world。
然后我们go run .,差点打成cargo run了。。

如果你遇到了这个问题:reading ./hello.go: unexpected NUL in input
很有可能是文件编码格式不是utf-8。
另外可以go help看其它指令。
使用外部包函数#
现在我们用的是标准库里的函数,而标准库是内部的(internal),跟着core包一起下载下来的。
我们可以去pkg.go.dev里面找一个quote的包,它的文档里有函数的描述。
另外你发布的包也会在这里被看到。
我们来导入它们
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}但是现在还并不能执行,因为我们还没下载这个包。我们可以执行go mod tidy更新依赖。
然后重新运行go run .

记得这句话么?我们在学rust的无畏并发那一章时,作者就有提到过这一句。
参考#
- ^Getting Start https://golang.google.cn/doc/tutorial/getting-started
- ^go mod init command https://golang.google.cn/ref/mod#go-mod-init
编辑于 2023-04-07 17:01・IP 属地广东
