Go基础语法(二) | 青训营笔记

114 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2天

基础算法(第二部分)

  1. slice 切片 此处为新的内容,切片是一种动态数组,比数组操作灵活,长度不是固定的,可以进行追加和删除。。切片是一个指向底层数组的指针,并且包含了三个属性:指针、长度和容量 应用方法
var slice(切片名称)[] int(数据类型) = array(数组名)[start_index : end_index]

切片可以通过内置函数make()来创建,格式如下:

make([]type, len, cap)
sli_6 := make([] int, 5, 9)

截取切片:切片可以通过下标访问数组中的元素,并且支持切片赋值和切片比较操作。

arr := [5]int{1, 2, 3, 4, 5} 
slice := arr[1:4] fmt.Println(slice) 
// Output: [2 3 4]

增加切片:通过内置函数append()来动态地增加元素.

slice := []int{1, 2, 3} slice = append(slice, 4, 5) fmt.Println(slice) // Output: [1 2 3 4 5]

2.map 和java的map方法很像,Map 集合是无序的 key-value 数据结构。

Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。用deleta()函数实现删除操作。 例程

m := make(map[string]int)//这将创建一个空map,其中键是字符串,值是整数
m["one"] = 1 //one是键,1是值 
m["two"] = 2 
fmt.Println(m) //map[one:1 two:2] fmt.Println(len(m)) //2 
fmt.Println(m["one"]) //1 fmt.Println(m["unknow"]) //0
r, ok := m["unknow"] //使用索引运算符检索特定键的值 fmt.Println(r, ok) //0 false 
delete(m, "one") //使用delete函数从map中删除键值对

3.循环 for 与java不同,for后没有() swich

  1. switch语句中的变量可以是任何类型,可以是一个常量或者一个变量,在每个case后面可以跟多个值,用逗号隔开 if/else 与java不同,if后没有()

contiue 跳过本次循环,只能用于 for。

//demo_22.go
package main

import "fmt"

func main() {
	for i := 1; i <= 10; i++ {
		if i == 6 {
			continue
		}
		fmt.Println("i =", i)
	}
}

goto 改变函数内代码执行顺序,不能跨函数使用。

//demo_23.go
package main

import "fmt"

func main() {
	fmt.Println("begin")

	for i := 1; i <= 10; i++ {
		if i == 6 {
			goto END
		}
		fmt.Println("i =", i)
	}

	END :
		fmt.Println("end")
}

break 跳出当前循环,可⽤于 for、switch、select。

//demo_21.go
package main

import "fmt"

func main() {
	for i := 1; i <= 10; i++ {
		if i == 6 {
			break
		}
		fmt.Println("i =", i)
	}
}