- 包管理:
- 每个Go程序都是由包构成的,
main包是可执行程序的入口。 - 使用
import语句导入其他包。 - 通过
go mod命令来管理包的版本和依赖关系。
- 声明变量:
-
使用关键字
var来声明一个变量。 -
变量的类型可以是内置的或自定义的。
-
可以使用
:=进行变量的声明和赋值(只能在函数内部使用)。 -
var name string // 声明变量 name = "John" // 赋值
var age int = 30 // 声明变量并赋值
score := 95 // 简短声明并赋值,自动推断类型
const pi = 3.14 // 常量声明并赋值
- 常量:
- 使用关键字
const来声明常量。 - 常量的值在编译时确定,不可更改。
- 数据类型:
- 基本数据类型包括布尔型、数值型、字符串和字符类型。
- 复合数据类型包括数组、切片、映射、结构体和接口。
- 控制流程:
if-else语句用于条件判断。for循环用于重复执行代码块。switch语句用于多条件判断。defer关键字用于在函数返回之前执行一些代码。
- 函数:
- 使用关键字
func定义函数,可以有多个参数和返回值。 - 函数可以作为参数传递和返回值。 // 基本函数 func add(a, b int) int { return a + b }
// 多返回值函数 func divide(a, b int) (int, int) { quotient := a / b remainder := a % b return quotient, remainder }
// 匿名函数 func() { fmt.Println("Hello, anonymous function!") }()
// 可变参数函数 func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total }
- 指针:
声明指针变量:
使用*操作符声明一个指针变量,例如:var ptr *int。
ptr是一个指向int类型的指针变量。
取地址操作符&:
- 使用
&操作符获取变量的地址,例如:var a int = 42,ptr = &a。 ptr指向了变量a的内存地址。
- 错误处理:
- Go鼓励使用多返回值来处理错误。
- 使用
error类型来表示错误。
- 结构体与方法:
- 使用关键字
type定义结构体,可以在结构体中定义字段。 - 可以为结构体定义方法,方法是与特定类型关联的函数。 // 定义结构体 type Person struct { name string age int }
// 定义方法 func (p Person) sayHello() { fmt.Println("Hello, my name is", p.name) }
Go语言是一种开源的静态类型编程语言,它被设计为简单、高效、可靠的系统编程语言。下面列举了一些主要的特性:
- 并发支持:Go语言内置了轻量级的协程(goroutine)和通信机制(channel),方便编写高效的并发程序。
- 垃圾回收:Go语言拥有自动垃圾回收机制(Garbage Collection),减轻了开发人员的内存管理负担。
- 高效的编译和执行:Go语言的编译速度快,生成的可执行文件体积小,并且具有接近原生代码的执行性能。
- 内置工具:Go语言附带了许多内置工具,如格式化工具(gofmt)、包管理工具(go mod)、性能分析工具(go tool pprof)等。
- 内存安全:Go语言通过垃圾回收器和强类型检查,提供了内存安全的编程环境,避免了常见的内存错误。
- 丰富的标准库:Go语言的标准库提供了许多常用的功能模块,如网络编程、文件操作、加密解密、JSON/XML处理、并发编程等。
- 可读性强:Go语言注重代码的可读性,采用简洁的语法和一致的命名规范,使得代码易于理解和维护。
- 跨平台支持:Go语言的编译器支持多种操作系统和处理器架构,可以轻松地在不同平台上编译和运行代码。
- 静态类型语言:Go语言是静态类型的语言,提供了编译时的类型检查,减少了运行时的错误。
- 反射机制:Go语言提供了反射机制,能够在运行时动态地检查和修改变量、类型和函数等。