Skip to content

结构

GO 语言的基础组成分别为:包声明、引入包、函数、变量、语句 & 表达式、注释

案例

go
package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

以上为简单GO程序。GO 是编译型语言,需要执行命令运行

bash
# 运行
go run <文件路>

# 编译(会把语言编译为可直接运行的二进制文件)
go build <文件路>

注意:在 GO 语言中 { 是不能单独放到一行中,会产生语法错误。错误案例:

go
func main() 
{
	fmt.Println("hello world")
}

主函数

main() 函数是程序的“入口函数”,整个程序只有一个。除此之外还有 init() 函数,他的执行时机是在 main() 函数之前的,一个包可以有多个 init() 函数

go
package main

func init() {
	println("init 函数被调用")
}

func main() {
	println("main 函数被调用")
}

执行规则

包级变量初始化:程序启动时,首先初始化所有被导入包的包级变量(全局变量)

init 函数执行:包级变量初始化完成后,执行该包的 init 函数(一个包可以有多个 init 函数,按声明顺序执行)

依赖包优先:如果包 A 导入了包 B,会先完成包 B 的变量初始化和 init 函数执行,再处理包 A

main 函数执行:所有依赖包的初始化和 init 函数执行完毕后,才会执行 main 包的 init 函数,最后执行 main 函数

特殊点init 函数不能被手动调用,也没有参数和返回值,程序自动触发执行

分隔符

在 GO 中,一行则代表着一个语句的结束,如:

go
func main() {
	println("我是第一个行")
	println("我是第二个行")
}

如果是想要把多个语句写在同一行,则需要使用 ; 分割。如:

go
func main() {
	println("我是第一个行"); println("我是第二个行")
}

注释

单行注释(以 // 开头):

go
// 我是单行注释

多行注释(以 /* 开头,以 */ 结尾):

go
/*
我是
多行注释
*/

标识符

标识符用来命令变量和类型等程序实体。通常是由字母(A ~ Z | a ~ z)、数字(0 ~ 9)、下划线(_)组成的一个或多个字符组成的序列。

注意:对于以数字为开头或者 GO 语言关键字为标识符的为无效标识符