golang
golang学习过程中的一些知识点以及遇到的问题
shadowgully
这个作者很懒,什么都没留下…
展开
-
golang map
golang中的map在初始化方面和数组比较相似。区别在于map在make的时候可以只指定类型,不指定大小,而且map也不存在capacity。map类型一般是如下形式map[key类型]value类型package mainimport "fmt"func main() { //var声明,稍后再使用make分配空间 var map1 map[string]string if map1 == nil { fmt.Println("nil") } map1 = make(map[st原创 2021-10-22 15:46:06 · 110 阅读 · 0 评论 -
golang数组与slice
golang的数组分为固定长度和动态(slice)两种形式。定长数组定长数组采用数组名 := [长度]数组成员类型{初始化值}声明并初始化或者var 数组名 [长度]数组成员类型声明。定长数组可以采用for循环或者range for循环遍历:array1 := [5]int{1, 2, 3, 4, 5}fmt.Println(array1)for index, value := range array1 { fmt.Println(index, value)}定长数组在参数传递过程原创 2021-10-22 14:37:02 · 604 阅读 · 0 评论 -
golang for循环
golang中的for循环有多种形式,和C++的for循环非常类似。一、完整的for循环完整的for循环的格式为for 初始化;条件判断;改变条件判断所用变量{},完整的for循环通常用于已知长度的容器或数组的遍历。arrays := [10]int{1, 23, 442, 234, 534, 123, 124}for i := 0; i < len(arrays); i++ { fmt.Println(arrays[i])}二、类似while循环的for循环类似while的f原创 2021-10-22 10:17:30 · 9310 阅读 · 0 评论 -
golang指针
golang中的指针和C/C++类似。以学习C语言指针时常用的swap函数为例,如果不使用指针时,交换的是swap函数中局部变量的值,因此无法交换两个参数的值。package mainimport "fmt"func swapTwo(lhs int, rhs int) { fmt.Printf("typeof args = %T\n", lhs) lhs, rhs = rhs, lhs}func main() { a := 123 b := 321 fmt.Println(原创 2021-10-21 16:34:36 · 236 阅读 · 0 评论 -
golang函数
golang函数采用func (arg1 type1,arg2 type2...) (ret1 ret_type1,ret2 ret_type2){}这样的形式。有两个需要注意的点,一个就是golang的参数都是参数名在参数类型前,这一点在golang中非常普遍;第二点就是golang支持多返回值,并且可以为返回值指定参数名。对于单返回值:func f(a int, b int) int { return a + b}对于多返回值(虽然这个示例可以通过更简单的方式实现a,b = b,a,这里只原创 2021-10-21 15:28:26 · 1022 阅读 · 0 评论 -
golang常量和枚举
golang使用const 变量名 变量类型 = 初始化值的形式声明并初始化常量,且常量必须在声明时初始化。和声明变量的区别在于var换成了const且不能省略,同时const a := 10这样混用const和:=的声明方式不被允许。golang没有其他语言中的enum,而是采用多行const实现。类似如下://使用const来定义枚举类型const ( MON = 1 TUE = 2 WEN = 3 TUR = 4 FRI = 5 SAT = 6 SUN = 7)也可以使用io原创 2021-10-21 14:27:22 · 2805 阅读 · 0 评论 -
golang变量声明
golang变量声明有多种方式,var关键字用于声明变量。最复杂的是var + 变量名 + 变量类型 = 初始化值这样的声明初始化方式。类似于c++中的auto,在给出初始化值的时候,变量类型可由此推出,因此可以省略。变量名 := 初始化值这样的初始化方式无疑是最简单的,唯一存在的问题就是无法声明全局变量。编译器在函数体外应该是通过var关键字来识别全局变量声明的。多变量的声明采用多行方式比单行更为清晰。package mainimport "fmt"// := 只能够用在函数体内声明变量v原创 2021-10-21 11:06:12 · 1013 阅读 · 0 评论