一、第一个程序

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:

  1. 《22 讲通关 Go 语言》

======= END =======