定义数组
var arr1 [5]int
arr2 := [3]int{1,2,3}
arr3 :=[...]int{2,4,6,8,10}
var grid [3][4]int
fmt.Println(arr1,arr2,arr3)
fmt.Println(grid)
数组的遍历
//下表和数值
for _,v := range arr3{
fmt.Println(v) }
maxIndex := -1
maxValue := -1
for i,v := range arr3{
if v > maxValue{
maxIndex , maxValue = i,v
}
}
注意的是切片是半开半闭区间的
s := arr[2:6]
s = arr[:3]
s = arr[1:]
s = arr[:]
arr := [...]int{0,1,2,3,4,5,6,7}
fmt.Println("ReSlice operation====")
fmt.Println("arr[:] : ",arr)
s1 := arr[2:6]
fmt.Println("arr[2:6] : ",s1)
s2 := s1[3:5]
fmt.Println("s[3:5] : ",s2)
这里s2的结果,明显是数组是对s1越界了,但是还是可以打印出来,打印的结果还是可以打印出来!
fmt.Println("Add element to array")
s3 := arr[4:7]
fmt.Println(s3)
//No longer view arr , will new a space and copy s3
s4 := append(s3, 10)
fmt.Println(s4)
s5 := append(s4, 11)
fmt.Println(s5)
fmt.Println("Deteling Slice ")
//实现思路是一直append,跳过删除的元素,append可以使用可变参数
delete := s2[3]
fmt.Println("Detele elment is " , delete)
s2 = append(s2[:3],s2[4:]...)
printSlices(s2)
fmt.Println("Poping elment form front")
front := s2[0]
fmt.Println("pop element is ",front)
s2 = append(s2[1:])
printSlices(s2)
fmt.Println("Poping elment form back")
back := s2[len(s2)-1]
fmt.Println("pop element is ",back)
s2 = append(s2[:len(s2)-1])
printSlices(s2)
m := map[string]string{
"name" : "ccmouse",
"cource" : "golang",
"site" : "imooc",
"quality" : "notebad",
}
fmt.Println("Getting value")
if courseName, ok := m["caourse"]; ok{
fmt.Println(courseName) //如果是不存在的value,会打印" "
}else{
fmt.Println("key dose not exist")
}
https://leetcode.com/
对于每一个字母X