Go语言入门14---二维数组&&冒泡排序&&切片初步使用|Go主题月

234 阅读1分钟

多维数组

存储的是一维的一维

package main

import "fmt"

func main() {
	a2:=[3][4]int{{1,2,3},{4,5,6},{7,8,9}}
	fmt.Println(a2)
	fmt.Printf("二维数组的地址为%p\n",&a2)
	fmt.Printf("二维数组的长度为%d\n",len(a2))
	fmt.Printf("一维数组的长度为%d\n",len(a2[0]))

	//遍历二维数组
	for i:=0;i<len(a2);i++ {
		for j:=0;j<len(a2[i]);j++ {
			fmt.Print(a2[i][j]," ")
		}
		fmt.Println()
	}
	//for range 遍历二维数组
	for _,arr:=range a2{
		for _,val:=range arr{
			fmt.Print(val,"\t")
		}
		fmt.Println()
	}
}

image.png

数组的排序

冒泡排序

package main

import "fmt"

func main() {
	arr:=[5]int{15,23,8,10,7}
	/*for j:=0;j<4;j++{
		if arr[j]>arr[j+1] {
			arr[j],arr[j+1]=arr[j+1],arr[j]
		}
	}
	fmt.Println(arr)
*/
	for i:=1;i<len(arr);i++ {
		for j:=0;j<len(arr)-i;j++ {
			if arr[j]>arr[j+1] {
				arr[j],arr[j+1]=arr[j+1],arr[j]
			}
		}
	}
	fmt.Println(arr)

}

image.png

slice切片

定义切片
    var identifier[]type
1. make()
    第一个参数:类型
        slice,mapchan
    第二个参数:长度
        实际存储元素的数量
    第三个参数:容量
        最多能存储元素的数量、
2.append()
    两种用法:1.append(切片名,参数,参数,...)用于添加切片元素,超过范围会自动扩容
              2.append(切片名,其他切片名...)将其他切片的元素添加至当前切片
              
 
package main

import "fmt"

func main() {
	var s1 []int
	fmt.Println(s1)
	s2:=[]int {1,2,3,4}
	fmt.Println(s2)
	fmt.Printf("%T\n",s2)

	fmt.Println("......................")

	s3:=make([]int ,3,8)
	fmt.Println(s3)
	fmt.Printf("容量:%d,长度:%d\n",cap(s3),len(s3))

	fmt.Println(".......................")

	s4:=make([]int,0,5)
	fmt.Println(s4)
	s4=append(s4,1,2)
	fmt.Println(s4)
	s4=append(s4,3,4,5,6)//自动扩容
	fmt.Println(s4)
	s4=append(s4,s3...)
	fmt.Println(s4)

}

image.png