golang编程总结(三)切片和映射
切片
切片是一个结构体,有三个成员,数组指针,长度,容量,可以理解为一个数组的窗口,
数组指针:这个窗口的最左边
长度:窗口的大小
容量:窗口的右边最多可以扩展到什么位置
	// 示例1。
	s1 := make([]int, 5)
	fmt.Printf("The length of s1: %d\n", len(s1))
	fmt.Printf("The capacity of s1: %d\n", cap(s1))
	fmt.Printf("The value of s1: %d\n", s1)
	s2 := make([]int, 5, 8)
	fmt.Printf("The length of s2: %d\n", len(s2))
	fmt.Printf("The capacity of s2: %d\n", cap(s2))
	fmt.Printf("The value of s2: %d\n", s2)
	fmt.Println()
	// 示例2。
	s3 := []int{1, 2, 3, 4, 5, 6, 7, 8}
	s4 := s3[3:6]
	fmt.Printf("The length of s4: %d\n", len(s4))
	fmt.Printf("The capacity of s4: %d\n", cap(s4))
	fmt.Printf("The value of s4: %d\n", s4)
	fmt.Println()
	// 示例3。
	s5 := s4[:cap(s4):cap(s4)]
	fmt.Printf("The length of s5: %d\n", len(s5))
	fmt.Printf("The capacity of s5: %d\n", cap(s5))
	fmt.Printf("The value of s5: %d\n", s5)
	// 示例4。会panic
	s6 := s4[:100]
	fmt.Printf("The length of s5: %d\n", len(s6))
	fmt.Printf("The capacity of s5: %d\n", cap(s6))
	fmt.Printf("The value of s5: %d\n", s6)
映射
和java的hashmap是类似的,key应该可以进行hash运算和相等比较,特殊的地方是为nil的map可以进行读操作,返回类型的零值,写操作会panic
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号