// 单行注释
package main
import "fmt"
func main() {
//逻辑实现
fmt.Println("Hello, Yuan!")
}
1、程序语法解析
1.1、main包和main函数
- Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明。
- Go语言的包与文件夹是一一对应的。一个Go语言程序必须有且仅有一个 main 包。main 包是Go语言程序的入口包,如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。
1.2、import
在包声明之后,是 import 语句,用于导入程序中所依赖的包,导入的包名使用双引号””包围,格式如下:
其中 import 是导入包的关键字,name 为所导入包的名字。import "name"
注意: 导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误。
也可以使用一个 import 关键字导入多个包,此时需要用括号( )将包的名字包围起来,并且每个包名占用一行
// 导入1到多个包
import "p1"
import "p2"
// 导入 1 到多个 包
import(
"p1"
"p2"
)
2、程序编译执行
我们上面给大家介绍过,Go语言是像C语言一样的编译型的静态语言,所以在运行Go语言程序之前,先要将其编译成二进制的可执行文件。
可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译:
go build命令可以将Go语言程序代码编译成二进制的可执行文件,但是需要我们手动运行该二进制文件;
1. 如果是普通包,当你执行go build之后,它不会产生任何文件。【非main包】
2. 如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执行文件exe
3. 你也可以指定编译输出的文件名。我们可以指定go build -o xxxx.exe,默认情况是你的package名(main包),或者是第一个源文件的文件名(main包)
Eg:
# 编译 hello.go 文件
D:\GoWork\src>go build hello.go
# 生成1个 hello.exe 可执行文件
D:\GoWork\src>dir
...hello.exe
...hello.go
# 执行这个hello.exe文件
D:\GoWork\src>hello.exe
hello world
除了使用go build命令外,Go语言还为我们提供了go run命令,go run命令将编译和执行指令合二为一,会在编译之后立即执行Go语言程序,但是不会生成可执行文件。
go run fileName // fileName 参数必须是同一 main 包下的所有源文件名,并且不能为空。
Eg:
# go语言把它当做了解释性语言执行,
D:\GoWork\src>go run hello.go # 等同于 编译 + 可执行性文件这么一个操作
hello world
3、总结
1. go语言是依赖包结构进行管理的,包可以想象成一个文件夹,也就是说go语言的一个程序必须在一个文件夹下,所以在这个文件夹下必须要有一个主程序。
2. 这个主程序首先要有关键字 package,以后无论项目有多大,项目有多全,至少要有一个main包