ch4、编写第一个Go程序
1、设置环境变量
-
Go中需要配置三个环境变量,分别是:
-
GOROOT:Go的安装目录
-
PATH:Go的安装目录下的bin目录
-
GOPATH:Go的项目目录
- 在 1.8 版本前必须设置这个环境变量
- 1.8 版本后(含 1.8)如果没有设置,会使用默认值
- 在 Unix 上默认为 $HOME/go , 在 Windows 上默认为 %USERPROFILE%/go;
- 在 Mac 上 GOPATH 可以通过修改 ~/.bash_profile 来设置;
-
【注意】将GOROOT和PATH配置到系统的环境变量中,但是GOPATH不直接在系统变量中配置成一个固定的配置,因为我们可能在一个系统中创建多个Go项目,每一个项目都需要配置一个GOPATH变量,这显然是繁琐而且非常难以管理的,所以我们在创建项目的时候,直接通过IDE在创建项目的时候来配置GOPATH变量,这样就可以给每个Go项目都配置上对应的GOPATH路径。
2、新建项目
3、编写第一个go程序代码:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Args)
if len(os.Args) > 1 {
fmt.Println("Hello World ", os.Args[1])
}
os.Exit(-1)
}
- 必须是 main 包: package main
- 必须是 main 方法: func main()
- 文件名不一定是 main.go
-
退出返回值
- Go 中 main 函数不支持任何返回值
- 通过 os.Exit 来返回状态
-
与其他主要编程语言的差异
- main 函数不支持传入参数,以下用法错误
func main(arg []string)
- 在程序中直接通过 os.Args 获取命令⾏行行参数,另外一种方法是通过flag包来获取命令行参数(推荐用这种)
- main 函数不支持传入参数,以下用法错误
4、Go语言编码风格
- go程序编写在.go为后缀的文件中
- 包名一般使用文件所在文件夹的名称
- 包名应该简洁、清晰且全小写
- main函数只能编写在main包中
- 每一条语句后面可以不用编写分号(推荐)
- 如果没有编写分号,一行只能编写一条语句
- 函数的左括号必须和函数名在同一行
- 导入包但没有使用包编译会报错
- 定义局部变量但没有使用变量编译也会报错
- 定义函数但没有使用函数不会报错
- 给方法、变量添加说明,尽量使用单行注释
5、go语言的输入输出
5.1、输出函数
- Go语言fmt包实现了类似C语言printf和scanf的格式化I/O, 格式化动作源自C语言但更简单,输出函数
func Printf(format string, a ...interface{}) (n int, err error)
- 可以通过%o、%x输出八进制和十六进制外,
还可以
直接通过%b输出二进制,更多格式设置见fmt标准包的官方文档说明
package main
import "fmt"
func main() {
num := 15
fmt.Printf("十进制 = %d\n", num)
fmt.Printf("八进制 = %o\n", num)
fmt.Printf("十六进制 = %x\n", num)
fmt.Printf("二进制 = %b\n", num)
}
- 除此之外,Go语言还增加了%T控制符, 用于输出值的类型
package main
import "fmt"
func main() {
type Person struct {
name string
age int
}
num1 := 10
num2 := 3.14
per := Person{
"lnj", 33}