这是我参与「第五届青训营 」伴学笔记创作活动的第 2天
基础算法(第二部分)
- 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
- 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)
}
}