Go语言基础语法|青训营

148 阅读3分钟

1 什么是Go语言

Go,也称为 Golang 或 Go 语言,是Google 开发的一种 开源编程语言。 软件开发人员在一系列操作系统和框架中使用 Go 来开发 Web 应用程序、云和网络服务以及其他类型的软件。 Go 是静态类型的、显式的,并且是在 C 编程语言之后建模的。

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

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 标准的字符编码方式。

2.2 基础语法-变量