Go语言编程基础与实战示例

需积分: 9 2 下载量 97 浏览量 更新于2024-08-05 收藏 4KB TXT 举报
"Go语言学习笔记20220709" 本文主要涵盖了Go语言的基础语法,包括变量声明、常量、函数、切片、数组、字符串以及 iota 的使用。以下是对这些知识点的详细说明: 1. 变量声明: 在Go语言中,可以使用`var`关键字来声明变量。例如: ```go var b, c int = 1, 2 ``` 此外,Go还支持简短的变量声明,使用`:=`符号,它会自动推断变量类型: ```go d := 10 ``` 在`main`函数中,可以看到对变量`b`, `c`, `name`, `d`, `f`, `qwer`的声明和初始化。 2. 函数: 函数在Go语言中是通过`func`关键字定义的,如`foo()`函数: ```go func foo() (int, string) { return 10, "Q1mi" } ``` 函数可以返回多个值,如`foo()`返回一个整数和一个字符串。 3. 常量: 使用`const`关键字声明常量,例如: ```go const pi = 500 ``` 同时,可以使用`iota`常量来创建枚举类型: ```go const ( n1 = iota // n1 = 0 n2 // n2 = 1 n3 // n3 = 2 n4 // n4 = 2 (n3的值,因为n3后没有新的iota) ) ``` `iota`在每个常量组中递增,初始值为0。 4. 数组: Go语言中的数组有固定长度,声明时必须指定长度和元素类型。例如: ```go var arr0 [5]int = [5]int{1, 2, 3} // 显示初始化 var arr1 [5]int = {1, 2, 3, 4, 5} // 省略长度时,默认为括号内的元素数量 ``` 数组变量的长度是其类型的一部分,因此`arr0`和`arr1`虽然元素相同,但类型不同,不能互相赋值。 5. 切片(Slice): 切片是动态数组,可以理解为数组的视图。例如: ```go var arr2 []int = {1, 2, 3, 4, 5, 6, 7} ``` 切片可以用于创建可变长度的数据序列。 6. 字符串: Go语言中的字符串是不可变的,可以通过索引来访问字符,如`fmt.Print(name)`。 7. 遍历数组/切片: 有两种遍历方式: ```go // 指针索引遍历 for i := 0; i < len(a); i++ { fmt.Println(a[i]) } // 关键字range遍历 for index, value := range a { fmt.Println(index, value) } ``` `range`可以获取当前元素的索引和值,对于数组或切片,索引从0开始。 8. 错误处理: Go语言通常使用错误处理模式,如: ```go x, _ := foo() // 忽略错误 _, y := foo() // 获取错误,忽略结果 ``` 如果函数返回多个值,下划线 `_` 用于丢弃不需要的返回值。 9. iota 的使用: `iota`在常量声明中作为计数器使用,每遇到一个新的常量组,它的值会自增1。例如: ```go const ( g, h, i = iota + 1, iota + 2, iota - 1 // g = 1, h = 2, i = 0 ) ``` 这里,`iota`在第一个常量`g`处为1,然后依次计算。 Go语言的学习涵盖了基本的语法结构,包括变量、常量、函数、数组、切片和错误处理机制,以及独特的`iota`枚举特性。这些基础知识构成了Go语言编程的基础。