2021.04.15 Go语言学习
切片
声明切片类型的基本语法如下:
var name []T
//name:表示变量名
//T:表示切片中的元素类型
func main() {
// 声明切片类型
var a []string //声明一个字符串切片
var b = []int{} //声明一个整型切片并初始化
var c = []bool{false, true} //声明一个布尔切片并初始化
var d = []bool{false, true} //声明一个布尔切片并初始化
fmt.Println(a) //[]
fmt.Println(b) //[]
fmt.Println(c) //[false true]
fmt.Println(a == nil) //true
fmt.Println(b == nil) //false
fmt.Println(c == nil) //false
// fmt.Println(c == d) //切片是引用类型,不支持直接比较,只能和nil比较
}
https://www.liwenzhou.com/posts/Go/06_slice/
跟着DaLao学就好!
append()方法为切片添加元素
func main(){
var s []int
s = append(s, 1) // [1]
s = append(s, 2, 3, 4) // [1 2 3 4]
s2 := []int{5, 6, 7}
s = append(s, s2...) // [1 2 3 4 5 6 7]
}
学习记录
package main
import "fmt"
func main() {
//且切片的定义
var s1 []int //定义了一个存放int类型元素的切片
var s2 []string //定义了一个存放string类型元素的切片
fmt.Println(s1,s2)
//初始化
s1 = []int{1,2,3}
s2 = []string{"a","b","c"}
fmt.Println(s1,s2)
//切片的长度和容量
fmt.Printf("len(s1):%d cap(s1):%d\n",s1,s1)
fmt.Printf("len(s2):%d cap(s2):%d\n",s2,s2)
//2.由数组得到切片
a1 := [...]int{1,23,5,7,2,4,46,7,7}
s3 := a1[0:4] //相当于从a1的数组中从第0个开始到第四个结束但是不包括第四个(左闭右开)
s4 := a1[2:]
s5 := a1[:]
fmt.Println(s3)
fmt.Println(s4)//从第二个以后开始开始不包括第二个
fmt.Println(s5)//等于a1
fmt.Printf("len(s3):%d cap(s3):%d\n",len(s4),len(s4))
//切片在切片
//切片是引用类型,都指向底层的一个数组
s8 := s4[:3]
fmt.Println(s8)
fmt.Printf("len(s8):%d cap(s8):%d\n",len(s8),len(s8))
}
package main
import "fmt"
//make函数创造切片
func main() {
s1 := make([]int,5,10) //有两个参数,第一个是参数类型,第二个是参数长度,第三个参数是容量
fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d\n",s1,len(s1),len(s1))
}
练习
package main
import (
"fmt"
"sort"
)
func main() {
//数组遍历0~9
//var a = make([]string, 5, 10)
//for i := 0; i < 10; i++ {
//
// a = append(a,fmt.Sprintf("%v",i))
//}
//fmt.Println(a)
//sort包实现三种排序
//https://www.jb51.net/article/127463.htm
var a = [...]int{3, 7, 8, 9, 1}
sort.Ints(a[:])
fmt.Println(a)
}