package main
import "fmt"
/*func pop(arr [10]int) { //冒泡排序
for i := 0; i < len(arr)-1; i++ { for j := 0; j < len(arr)-1-i; j++ { if arr[j] < arr[j+1] { arr[j], arr[j+1] = arr[j+1], arr[j] } } } fmt.Println(arr) }*/ func main() { //数组 是指一系列同一类型数据的集合 //数组定义 var 数组名 [长度]类型 //var a [10]int //fmt.Println(a,len(a)) //a[0] = 1 //a[2] = 1 //a[4] = 2 //a[5] = 1 //fmt.Println(a) //for i,v := range a { // fmt.Println(i,v) //} /*var a [5]int = [5]int{1,2,3,4,5} fmt.Println(a) b := [5]int{1,2,3,4,5} fmt.Println(b) c := [5]int{12,3,4} fmt.Println(c) d := [5]int{1:20,4:100} fmt.Println(d) //... 通过初始化确定数组长度 e := [...]int{1,2,3} fmt.Println(e,len(e)) f := e e[2] = 100 fmt.Println(e) fmt.Println(f) fmt.Printf("%T\n",f) fmt.Printf("%p\n",&f) fmt.Printf("%p\n",&f[0]) fmt.Printf("%p\n",&f[1]) fmt.Printf("%p\n",&f[2])*/ //数组求值 //arr := [5]int{1,2,-3,4,5} //fmt.Println(arr) //var max int = arr[0] //var min int = arr[0] //var sum int // //for i := 0; i < len(arr); i++ { // if arr[i] > max { // max = arr[i] // } // if arr[i] < min { // min = arr[i] // } // sum += arr[i] //} //fmt.Println(max,min,sum) //数组翻转 /*var arr = [11]int{1,2,3,4,5,6,7,8,9,10,11} i := 0 //最小下表 j := len(arr) -1 //最大下标 for i < j { arr[i], arr[j] = arr[j], arr[i] i++ j-- } fmt.Println(arr)*/
//fmt.Println(arr) //设置随机数 //创建随机数种子 //rand.Seed(time.Now().UnixNano()) //fmt.Println(rand.Int()) //生成较大的随机数 //fmt.Println(rand.Intn(100)) //常用 //arr := [10]int{2,5,3,2,5,6,5,3,7,1} //数组作为函数参数是值传递 // 形参和实参 是不同的地址 //内存中有两份独立的数组,存储不同的数据 //在函数调用结束后,内存回收,不会影响主函数实参的值 //pop(arr) //二维数组 //var arr[2][3]int //fmt.Println(arr) //fmt.Println(len(arr)) //fmt.Println(len(arr[0])) //arr[0][1] = 123 //fmt.Println(arr) //b := [3][5]int{{1,2,3,4},{3,3,3,3}} //fmt.Println(b) //切片长度不固定 //var slice []int //空切片 //slice = append(slice,1,2,3,4,5) //fmt.Println(slice) //fmt.Println(len(slice)) //fmt.Println(cap(slice)) //arr := [3]int{12} //fmt.Println(arr) //var s2 = []int{1,2,3} //fmt.Println(s2) //s3 := []int{2222,2,22,3,2} //fmt.Println(s3) // 03 make //s := make([]int,5,10) //s = append(s, 1,2,3,4,5,6) //fmt.Println(s) //fmt.Println(len(s)) //fmt.Println(cap(s)) //空切片,指向内存地址编号为0的空间 //切片名,本身就是一个地址 /*var slice []int fmt.Printf("%p\n",slice) //使用append 追加时,内存地址可能发生改变 slice = append(slice,1,2,3) fmt.Println(slice) fmt.Printf("%p\n",slice) fmt.Printf("%p\n",&slice[0]) fmt.Printf("%p\n",&slice[1]) fmt.Printf("%p\n",&slice[2]) fmt.Println(cap(slice)) slice = append(slice,1,2,3) fmt.Println(cap(slice)) slice = append(slice,1,2) fmt.Println(cap(slice))*/ //fmt.Println(slice[49]) //s := []int{10,20,30,40,50} ////[起始位置:结束位置:容量] //slice := s[:3] //fmt.Println(slice) //fmt.Println(len(slice)) //fmt.Println(cap(slice)) //var s = []int{1,2,3,4,5} //s1 := []int{6,7,8,9} //copy(s1,s) //fmt.Println(s1) //fmt.Println(s) //slice := []int{1,2,3,4,5,6} //demo(slice) //fmt.Println(slice) //var m map[int]string //fmt.Println(m) //fmt.Println(len(m)) //m2 := make(map[int]string,3) // //m2[12] = "zhang" //m2[12] = "zhang" //m2[13] = "zhang" //m2[14] = "zhang" //m2[15] = "zhang" //m2[16] = "zhang" //m2[17] = "zhang" //fmt.Println(m2) ////初始化 //m3 := map[int]string{1:"张三",2:"李四"} //fmt.Println(m3) //fmt.Println("%p\n",m3) //m := make(map[string][3]int) //m["小明"] = [3]int{100,99,98} //m["小亮"] = [3]int{6,8,9} //m["小红"] = [3]int{101,100,102} //fmt.Println(m) //fmt.Println(m) //fmt.Println(m) //fmt.Println(m) //fmt.Println(m) //fmt.Println(m) //fmt.Println(m) // //value, ok := m["小明"] //fmt.Println(value, ok) //delete(m,"小明3") //fmt.Println(m) m := map[int]string{1:"貂蝉",2:"大桥",3:"小乔"} demo1(m) fmt.Println((m)) } func demo1 (m map[int]string) { m[4] = "zhang" fmt.Println(m) } func demo (s []int) { fmt.Println(s) //s[0] = 123 s = append(s,3,4,5,6) fmt.Println(s)
} ////结构体定义 //type 结构体名 struct { // //结构体成员列表 // //成员名 数据类型 //}
|
请发表评论