一、第一个程序
first.go
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
输出结果:
[root@localhost]# go run first.go
Hello, 世界
- 命令说明
-
go
:Go语言开发工具包提供的命令,可以运行Go语言代码,并进行编译,生成二进制文件等。 -
run
:go命令的子命令,表示运行Go语言代码的意思 -
first.go
就是写的代码文件,整个go run first.go
表示运行first.go里面的Go语言代码
二、程序结构分析
要让一个Go语言程序成功运行起来,只需要package main
和main
函数这两个核心部分;package main代表的是一个可运行的应用程序,而main函数则是这个应用程序的主入口
2.1、第一行package main
- 代表当前
first.go
文件属于哪个包 -
package
是Go语言声明包的关键字 -
main
是要声明的包名,在Go语言中main是一个特殊的包,代表你的Go语言项目是一个可运行的应用程序,而不是一个被其他项目引用的库
2.2、第二行import "fmt"
- 是导入一个
fmt
包 -
import
是Go语言的关键字,表示导入包
2.3、第三行func main()
- 定义了一个函数
-
func
是Go语言中的关键字,表示一个函数或者方法的意思 -
main
是函数名 -
()
空括号表示这个main
函数不接受任何参数
Go语言main函数中是一个特殊的函数,代表整个程序的入口,也就是程序在运行的时候,会先调用main函数,然后通过main函数再调用其他的函数,达到实现项目业务需求的目的
2.4、第四行fmt.Println("Hello, 世界")
- 通过
fmt
包的Println
函数打印"Hello, 世界"
,这段文本 - 想要使用一个包,必须先导入
-
Println
函数是属于fmt
的函数,这里需要它打印输出
2.5、第五行}
- 表示
main
函数体的结束
三、Go语言环境搭建
3.1、下载Go语言开发包
3.2、Windows MSI下安装
- 自行选择64bit或32bit的安装包
- 下载后双击MSI安装文件,按照提示安装
- go语言开发工具会安装到c:/Go目录,可另选路径
- 安装程序会自动添加PATH环境变量中,如果没有
【系统 -> 控制面板 -> 高级 -> 环境变量选项】
来手动添加
3.3、Linux下安装
- 自行选择64bit或32bit的安装包
- 解压
sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
- 添加环境变量
/etc/profile
或者$HOME/.profile
文件中export PATH=$PATH:/usr/local/go/bin
四、测试安装
[root@localhost ~]# go version
go version go1.15.4 linux/amd64
五、环境变量设置
5.1、设置GOPATH
和GOBIN
-
GOPATH
:代表Go语言项目的工作目录,在Go Module
模式之前非常重要,现在基本上用来存放适用go get
命令获取的项目 -
GOBIN
:代表Go编译生成的程序的安装目录,比如通过go install
命令,会把生成的Go程序安装到GOBIN
目录下,以供在终端使用
5.2、Linux添加内容到/etc/profile
或者$HOME/.profile
文件保存
export GOPATH=/home/golang
export GOBIN=$GOPATH/bin
5.3、Windows操作系统中
-
【控制面板 -> 高级 -> 环境变量】
六、项目结构
采用Go Module的方式,可以在任何位置创建你的Go语言项目。
- 项目位置
/home/git/gotour
cd /home/git/gotour
- 创建一个
Go Module
项目
go mod init src #src为Go 的Module
- 上面命令执行成功后,会生成一个
go.mod
文件, 然后在当前目录下创建一个main.go
文件
[root@localhost gotour]# cat go.mod
module src
go 1.15
[root@localhost git]# tree gotour
gotour
├── ch01
│ └── main.go
├── go.mod
└── lib
- 其中main.go是整个项目的入口文件,里面由main函数。
- lib目录是项目的子模块,也可以继续嵌套为子模块的子模块
七、编译发布
完成项目后,可以编译生成可执行文件,也可以把它发布到
$GOBIN
目录,以供在终端适用
- 编译
main.go
go build ./ch01/main.go
- 测试
[root@localhost ch01]# ./main
Hello, 世界
- 以上生成的可执行文件在当前目录,也可以把它安装到
$GOBIN
目录或者任意位置
[root@localhost gotour]# go install ./ch01/main.go
[root@localhost gotour]# main
Hello, 世界
# 使用go install命令即可,在任意终端,输入main回车,都会打印"Hello, 世界"
八、跨平台编译
Go 语言开发工具包的另一强大功能就是可以跨平台编译。什么是跨平台编译呢?就是你在 Linux 开发,可以编译 MacOS、Window 等平台上的可执行程序,这样你开发的程序,就可以在这些平台上运行。也就是说,你可以选择喜欢的操作系统做开发,并跨平台编译成需要发布平台的可执行程序即可。
- Go 语言通过两个环境变量来控制跨平台编译,它们分别是
GOOS
和 GOARCH
-
GOOS
:代表要编译的目标操作系统,常见的有 Linux、Windows、Darwin 等 -
GOARCH
:表要编译的目标处理器架构,常见的有 386、AMD64、ARM64 等
这样通过组合不同的GOOS和GOARCH,就可以编译出不同的可执行程序
- 编译windows AMD64的可执行文件
[root@localhost gotour]# GOOS=windows GOARCH=amd64 go build ./ch01/main.go
[root@localhost gotour]# ls
ch01 go.mod lib main.exe
关于 GOOS 和 GOARCH 更多的组合,参考官方文档的 $GOOS and $GOARCH 这一节即可
九、Go编辑器
- Visual Studio Vode + Go扩展插件
- 下载地址:官方网站
- 牌 IDE 公司 JetBrains 推出的 Goland
- 下载地址:官方网站
Reference:
- 《22 讲通关 Go 语言》
======= END =======