映射是一种数据结构,用于存储一系列无序的键值对。 注: 1.map内部使用Hash表 2.除了slice,map,function的内建类型都可以作为map的key 3.struct类型不包含上述字段,也可作为key 创建和初始化 使用make声明map [go]m := make(map[string]int) //创建一个map,key的类型为string,value的类型为int[/go] … 阅读全文

切片(slice)是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实现的,这个函数可以快速且高效地增长切片。还可以通过对切片的再次切片来缩小一个切片的大小。因为切片的底层内存也是在连续块中分配的,所以切片还能获得索引、迭代、及为垃圾回收优化的好处。 slice的创建和初始化 1.通过数组创建 [g… 阅读全文

数组的声明 [go]var arr1 [5]int arr2 := [3]int{1, 3, 5} arr3 := […]int{2, 4, 6, 8, 10} var xy [3][4]bool //三行四列的二维数组[/go] 数组的遍历 [go]func traverse(arr *[5]int) { for i, v := range arr {          //i为元素… 阅读全文

示例 计算从1加到100 [go]sum := 0 for i:=1;i<=100;i++ { sum += i } fmt.Println(sum)[/go] 注意:for的条件不用加括号 for的条件里不写分号,相当于其他语言的while 改写上例片段 [go]sum :=0 i:=1 for i <= 100 { sum+=i i++ } fmt.Println(sum)[/go… 阅读全文

第一种写法 —— switch x 注意:switch会自动break,除非使用fallthrough [go]func branch(a, b int, op string) int {     var result int     switch op {     case "+":         result = a + b     case &q… 阅读全文

第一种写法 [go]contents, err := ioutil.ReadFile("filename.txt"); if err != nil { fmt.Println(err) } else { fmt.Printf("%s\n", contents) }[/go] 注意:if的条件不加括号 第二种写法 if的条件里可以为变量赋值,该值的作用域为该i… 阅读全文

Go语言变量声明方法 1.通过关键字var [go]var one int  //var 变量名 类型 var two int = 2 //为变量赋初值 var three = 3  //编译器能自动识别变量类型[/go] 2.通过:=简易声明 [go]one := 1    //必须赋初值,省略变量类型 a,b,c,d := 1,false,"i am",3.14  //可同… 阅读全文