1 什么是Go语言
Go,也称为 Golang 或 Go 语言,是Google 开发的一种 开源编程语言。 软件开发人员在一系列操作系统和框架中使用 Go 来开发 Web 应用程序、云和网络服务以及其他类型的软件。 Go 是静态类型的、显式的,并且是在 C 编程语言之后建模的。
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
2 基础语法
2.1 基础语法-Hello World
- 这一行代码定义了 Go 中的一个包 package。
package main
包是 Go 语言的基本组成单元,通常使用单个的小写单词命名,一个 Go 程序本质上就是一组包的集合。所有 Go 代码都有自己隶属的包,在这里“hello world”的所有代码都在一个名为 main 的包中。main 包在 Go 中是一个特殊的包,整个 Go 程序中仅允许存在一个名为 main 的包。
- main包中的主要代码是一个名为main的函数:
func main(){
fmt.Println("hello world")
}
这里的 main 函数会比较特殊:当运行一个可执行的 Go 程序的时候,所有的代码都会从这个入口函数开始运行。这段代码的第一行声明了一个名为 main 的、没有任何参数和返回值的函数。如果需要给函数声明参数的话,那么就必须把它们放置在圆括号 () 中。
花括号{}被用来标记函数体,Go 要求所有的函数体都要被花括号包裹起来。左花括号与函数声明置于同一行并以空格分隔。 Gofmt 工具可以将代码自动格式化为约定的风格。
- main函数体中的代码:
fmt.Println("hello world")
调用了一个名为 Println 的函数,这个函数位于 Go 标准库的 fmt 包中。为了使用 fmt 包定义的 Println 函数,有两步操作:
第一步是在源文件的开始处通过 import 声明导入 fmt 包的包路径:
import (
"fmt"
)
第二步是在 main 函数体中,通过 fmt 这个限定标识符(Qualified Identifier)调用 Println 函数。虽然两处都使用了“fmt”这个字面值,但在这两处“fmt”字面值所代表的含义却是不一样的:
import “fmt” 中“fmt”代表的是包的导入路径(Import),它表示的是标准库下的 fmt 目录,整个 import 声明语句的含义是导入标准库 fmt 目录下的包; fmt.Println 函数调用一行中的“fmt”代表的则是包名。
main 函数体中之所以可以调用 fmt 包的 Println 函数,还有最后一个原因,那就是 Println 函数名的首字母是大写的。在 Go 语言中,只有首字母为大写的标识符才是导出的(Exported),才能对包外的代码可见;如果首字母是小写的,那么就说明这个标识符仅限于在声明它的包内可见。
另外,在 Go 语言中,main 包是不可以像标准库 fmt 包那样被导入(Import)的,如果导入 main 包,在代码编译阶段会收到一个 Go 编译器错误:import “xx/main” is a program, not an importable package。
Go 源码文件采用的是 Unicode 字符集,而且用的是 UTF-8 标准的字符编码方式。