课程笔记:Go 语言基础语法
1. Go 语言概述
-
Go 语言由 Google 于 2009 年发布,是一门静态强类型的编译型语言,设计上注重简洁高效,内置并发支持,广泛用于后端开发、分布式系统和云计算。
-
特点:
- 简洁性:语法清晰,学习曲线平缓。
- 高性能:通过静态编译和内存管理优化性能。
- 并发能力:支持轻量级线程(Goroutines)和通信机制(Channels)。
2. 程序架构
-
程序入口:Go 程序以
package main声明开始,main()函数作为运行起点。 -
引入库:通过
import关键字导入标准库或第三方库,例如import "fmt"用于标准输出。 -
示例代码:
package main import "fmt" func main() { fmt.Println("Hello, Go!") }
3. 变量声明
-
常规声明:通过
var定义变量,需指定类型并赋值。var x int x = 10 -
简洁声明:使用
:=可直接声明并初始化,编译器根据值推导类型。x := 10 -
多变量可同一行声明
4. 数据类型
-
基础类型:
int(整数)、float64(浮点数)、string(字符串)、bool(布尔值)。 -
复合类型:
-
数组:长度固定,适合存储规模明确的数据。
var arr [3]int = [3]int{1, 2, 3} -
切片:长度动态可变,通过
append扩展。slice := []int{1, 2, 3} slice = append(slice, 4) -
Map:键值对存储,用于快速查找。
m := make(map[string]int) m["apple"] = 5 -
结构体:封装复杂数据。
type Person struct { Name string Age int } p := Person{Name: "Alice", Age: 25} fmt.Println(p.Name)
-
5. 流程控制
-
条件语句:
if x > 10 { fmt.Println("x is greater than 10") } else { fmt.Println("x is less or equal to 10") } -
循环语句:Go 仅支持
for,常用于遍历和计数循环。for i := 0; i < 5; i++ { fmt.Println(i) }
6. 函数与接口
-
函数定义:
- 无参函数:
func sayHello() { fmt.Println("Hello") } - 带参函数:
func add(a int, b int) int { return a + b } - 多返回值:
func divide(a, b int) (int, error) { return a / b, nil }
- 无参函数:
-
接口编程:定义行为约束,解耦实现与调用。
type Speaker interface { Speak() string } type Person struct { Name string } func (p Person) Speak() string { return "Hello, I am " + p.Name }
7. 并发编程
-
Goroutines:轻量线程实现高并发。
go 复制代码 go func() { fmt.Println("Running in goroutine") }() -
Channels:用于 goroutine 间通信。
go 复制代码 ch := make(chan int) go func() { ch <- 42 }() value := <-ch fmt.Println(value)
8. 错误处理
-
Go 通过返回值
error处理错误。go 复制代码 func divide(a, b int) (int, error) { if b == 0 { return 0, fmt.Errorf("division by zero") } return a / b, nil }
总结与体会
就是基本的语法啥的,算是打基础啦。Go 的简洁性和高性能特性让人印象深刻,通过实践代码理解其核心概念,更有助于灵活运用到实际开发中。