Go语言入门基础语法
Go语言概述:
Go语言是一种静态类型、编译型语言,Go语言的设计目标是提高编程效率,具有简洁、快速、安全、并发支持等特点。
Go语言的语法类似于C语言,但更加简洁,省略了头文件、模板和异常处理等复杂特性。
基本语法:
-
包声明: 每个Go语言的源文件都以包声明开始,指明该文件属于哪个包。
go package main -
导入包: Go语言使用
import关键字来导入其他包。go import "fmt" import "math/rand" -
变量:
- 声明变量使用
var关键字,可以指定类型或让编译器推断类型。 - 短变量声明使用
:=,只能在函数内部使用。
go var a int = 10 b := 20.0 - 声明变量使用
-
常量: 使用
const关键字声明常量,常量一旦赋值不能更改。go const Pi = 3.14159 -
数据类型:
- 基本数据类型包括
int、float64、bool、string等。 - 复合类型包括数组、切片(slice)、结构体(struct)、映射(map)等。
- 指针类型用于存储变量的内存地址。
- 基本数据类型包括
-
控制结构:
if语句不需要括号包围条件,且else之前不需要分号。switch语句可以替代多个if-else语句。for循环是Go语言中唯一的循环结构,它没有while和do-while。break和continue关键字用于控制循环流程。
-
函数:
- 函数定义使用
func关键字。 - 函数可以返回多个值,这在错误处理中非常有用。
- 匿名函数(也称为闭包)可以捕获并使用外部变量。
- 函数定义使用
-
并发编程:
- Goroutine是Go语言并发设计的核心,它是一种轻量级的线程。
- Channel是Go语言中用于在goroutine之间同步和传递数据的机制。
select和case关键字用于处理多个channel操作。
-
接口:
- 接口在Go中是一种类型,它定义了一组方法。
- 任何实现了接口方法的类型都实现了该接口,这是Go语言实现鸭子类型的方式。
- 接口类型可以作为函数的参数,使得函数更加通用和灵活。
-
错误处理:
- Go语言中的错误处理是通过返回错误值来实现的。
- 通常,函数会返回两个值,一个是结果,另一个是错误。
- 使用
errors包来创建和处理错误。
-
包管理:
- Go语言使用
go get命令来安装和管理包。 - 使用
go build来编译程序,go run来直接运行程序。 go fmt命令用于格式化代码,确保代码风格的一致性。
- Go语言使用
-
结构体和方法:
- 结构体是一种自定义的数据类型,可以包含多个不同类型的字段。
- 方法可以绑定到结构体类型上,使得结构体实例可以调用这些方法。
-
切片:
- 切片是Go语言中非常强大的一种数据结构,它提供了动态数组的功能。
- 切片支持通过内置的
append函数动态增长。
-
映射:
- 映射(map)是Go语言中的一种关联数组,它使用键值对存储数据。
- 映射的键必须是可比较的类型,如
int、string等。
-
类型转换:
- 在Go语言中,需要显式地进行类型转换。
- 类型转换的语法是
类型名(表达式)。
-
指针:
- 指针用于存储变量的内存地址。
- 使用
&获取变量的地址,使用*解引用指针。
-
defer、panic和recover:
defer用于确保资源的释放,如文件关闭、锁释放等。panic用于触发异常,而recover用于捕获异常并恢复程序的执行。