创建Go模块
Go 模块用于跟踪我们应用程序的依赖项及其版本
创建一个go模块在learngo目录中执行
go mod init learngo
然后此目录里生成了一个go.mod,内容为
module learngo
go 1.19
第一行module learngo指定模块名称。下一行go 1.19表示该模块中的文件使用go版本1.19
学到包的时候,再详细讨论模块
Hello World
Go 中的惯例是将包含main函数的文件命名为main.go,但其他名称也可以
在此创建一个go文件,内容为
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
运行
四种方式运行go
1. go install
进入项目目录learngo,执行
go install
上面的命令将编译程序并将二进制文件安装(复制)到 GOBIN,就是第一篇教程里的那个路径。二进制文件的名称将是 go 模块的名称。
如果报错,说明你没设置GOBIN,去设置一下就行了
执行后,在GOBIN下就会有一个名为learngo的二进制文件,双击运行就会输出
Hello World
如果文件夹下有许多个go文件,不止main.go,go install怎么工作呢?这些等学到包和go modules再讨论
如果你把GOBIN加入到环境变量,那么你生成的二进制文件在任何位置的终端里都可以直接运行,不过要注意文件名不要与其他环境变量的文件名重复
2. go build
这个命令与go install唯一的区别就是二进制文件在项目目录生成二进制文件,而不是GOBIN
执行
go build
在当前目录下有一个learngo.exe,执行即打印字符串
Hello World
3. go run
先在项目文件夹内运行下面命令
go run main.go
会发现直接打印字符串Hello World
这个命令与前两个的区别是它是需要提供具体go文件作为参数的,并且它编译的二进制是在临时位置的,关掉终端就删除
如果想查看这个临时位置,需要在命令后加--work,如下
go run --work main.go
我这里打印结果为
WORK=C:\Users\Tajang\AppData\Local\Temp\go-build242553545
Hello World
C:\Users\Tajang\AppData\Local\Temp\go-build242553545就是当前临时文件的临时位置
4. Go Playground
在线沙箱,如
https://go.dev/play/?v=goprev
适合快速检查逻辑或了解标准库函数的工作原理
Hello World程序解释
这是刚刚编写的Hello World
package main
import "fmt"
func main() {
fmt.Println("Hello World")
} 代码解释
package main - 每个 go 文件都必须以语句开头package name。包用于提供代码划分和可重用性。main这里使用包名 。main 函数应该始终驻留在 main 包中。
import “fmt” - import 语句用于导入其他包。在我们的例子中,fmt包被导入,它将在 main 函数中使用,将文本打印到标准输出。
func main() -func关键字标记函数的开始。这main是一个特殊的功能。程序执行从main函数开始。和{大}括号表示主函数的开始和结束。
fmt.Println(“Hello World”) -包Println的函数fmt用于将文本写入标准输出。package.Function()是调用包中函数的语法。