package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
使用 go run 指令执行程序:
$ go run hello.go
使用 go build 指令生成二进制:
$ go build hello.go
$ ll
total 4256
-rwxr-xr-x 1 mickeyfan staff 2.1M 7 5 11:08 hello
-rw-r--r-- 1 mickeyfan staff 76B 7 5 11:08 hello.go
$ ./hello
程序结构
Go 程序的基本组成部分,包括:
- 包声明
- 导入包
- 函数
- 变量
- 表达式
- 语句
- 注释
包声明
必须在源文件中非注释的第一行指明这个文件属于哪个包,使用 package 关键字,如:package main,表示一个可独立执行的 main 程序,每个 Go 应用程序都包含一个名为 main 的包。
注意:
- 文件名与包名没有直接关系,并非需要一致。
- 文件夹名与包名没有直接关系,并非需要一致。
- 同一个文件夹下的文件只能有一个包名,否则编译报错。
导入包
使用 package 关键字定义的包,可以被其他包导入,使用 import 关键字。例如:import “fmt”,表示告诉 Go 编译器当前这个 main 包需要使用到 fmt 包中的函数,或其他元素。fmt 包实现了格式化 IO(输入/输出)的函数。
函数
使用 func 关键字来修饰一个函数的定义,例如:func main(),main 函数是每一个可执行程序所必须包含的,作为程序的入口。但 Golang 还定义了 init() 初始化函数的概念,若存在则最优先执行。
标识符
常量名、变量名、类型、函数名、结构体名称都统称之为标识符。Golang 标识符由 A-Z、a-z、0-9、_(下划线)任意组成,但第一个字符必须是字母或下划线而不能是数字。
当标识符以一个大写字母开头,如:Group1,表示其可以被外部包导入并使用,相对于当前包而言,这被称为导出。当标识符以小写字母开头,如:group1,则对外部包是不可见的,仅在当前包内部可见。
关键字
语句
一行代表一个语句结束。每个语句间不需要行间隔符 “;”,这些工作将由 Go 编译器自动完成。如果你希望将多个语句写在同一行,它们则必须使用 “;” 人为区分,但在实际开发中并不鼓励这种做法。
表达式
表达式通常由标识符和运算符组成,与语句的本质区别的与:表达是一定有返回值,而语句不一定。
注释
Golang 的注释和 C 语言一般:
- 单行注释://
- 块(多行)注释:/**/