Go语言基础知识点(部分内容参考豆包)
GO 语言基础知识点全面解析 ## 一、变量与数据类型 ### (一)变量声明 1. 使用 var 关键字声明变量,例如:var a int,声明了一个整型变量 a。可以同时声明多个变量,如 var b, c string。 2. 变量声明后若未显式初始化,会被赋予零值。整型为 0,字符串为空字符串 "",布尔型为 false 等。 3. 还可以使用短变量声明 :=,例如 d := 5,它会自动推断变量类型,但只能在函数内部使用。 ### (二)数据类型 1. 基本数据类型 - 整型:包括 int(根据系统平台不同,可能是 32 位或 64 位)、int8(8 位有符号整数)、int16、int32(也可写成 rune,常用于表示字符)、int64,以及对应的无符号整型 uint、uint8(也可写成 byte)、uint16、uint32、uint64。 - 浮点型:float32 和 float64,用于表示小数。 - 布尔型:bool,取值为 true 或 false。 - 字符串型:string,使用双引号或反引号包裹文本。反引号用于定义原生字符串,其中的转义字符不会被解析。 2. 复合数据类型 - 数组:具有固定长度,声明方式为 var arr [5]int,表示一个包含 5 个整型元素的数组。 - 切片:是对数组的引用,可以动态增长或缩小。例如 slice := []int{1, 2, 3} 创建了一个包含 3 个整型元素的切片。切片有 len()(获取长度)和 cap()(获取容量)函数。 - 结构体:用于组合不同类型的数据,定义方式如下: go type Person struct { Name string Age int } - 映射(map):类似于其他语言中的字典,用于存储键值对。例如 m := map[string]int{"apple": 5, "banana": 3}。 ## 二、控制结构 ### (一)条件语句 1. if 语句用于条件判断,基本形式为: go if condition { // 条件为真时执行的代码 } else if anotherCondition { // 另一个条件为真时执行的代码 } else { // 所有条件都为假时执行的代码 } if 语句中的条件表达式不需要括号,但大括号是必需的。 ### (二)循环语句 1. for 循环是最常用的循环结构,有多种形式: - 常规形式: go for i := 0; i < 10; i++ { // 循环体 } - 类似 while 循环的形式: go j := 0 for j < 10 { // 循环体 j++ } - 无限循环: go for { // 无限循环体,需要在内部使用 break 等语句来退出循环 } 2. range 关键字用于遍历数组、切片、字符串、映射等数据结构。例如遍历切片: go slice := []int{1, 2, 3} for index, value := range slice { // index 是元素的索引,value 是元素的值 } ## 三、函数 1. 函数使用 func 关键字定义,基本结构如下: go func functionName(parameters) returnType { // 函数体 return result } 例如: go func add(a, b int) int { return a + b } 2. 函数可以返回多个值,例如: go func divide(a, b int) (int, int) { quotient := a / b remainder := a % b return quotient, remainder } 3. 函数可以作为参数传递给其他函数,也可以作为返回值。 ## 四、指针 1. 指针用于存储变量的内存地址。使用 & 取变量的地址,使用 * 访问指针指向的值。例如: go a := 5 var p *int = &a fmt.Println(*p) // 输出 5 2. 通过指针可以在函数内部修改函数外部变量的值,这在某些情况下非常有用。 ## 五、错误处理 1. GO 语言中函数通常返回一个值和一个可能的错误。例如: go func divide(a, b int) (int, error) { if b == 0 { return 0, errors.New("除数不能为 0") } return a / b, nil } 2. 在调用可能返回错误的函数时,应该检查错误并进行相应处理,例如: go result, err := divide(10, 2) if err!= nil { fmt.Println("错误:", err) } else { fmt.Println("结果:", result) } ## 六、包(package) 1. GO 语言的代码组织成包。每个 GO 文件都属于一个包,使用 package 关键字声明。 2. 常见的包有 fmt(用于格式化输入输出)、math(数学函数库)、strings(字符串处理函数库)等。 3. 要使用其他包中的函数或类型,需要先导入包,例如 import "fmt"。可以使用别名,如 import f "fmt",然后使用 f.Println() 进行输出。 以上是 GO 语言的一些基础知识点,掌握这些内容后,可以进一步学习 GO 语言的高级特性,如并发编程、接口、反射等,从而更好地应用 GO 语言进行软件开发。