创建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()是调用包中函数的语法。