zoukankan      html  css  js  c++  java
  • GO编程(打卡)-Task06: 数组、切片

    数组

    package main
    
    import "fmt"
    
    func test(arrp *[3]int){
    	arrp[1] = 5
    	fmt.Println(arrp)
    }
    func main() {
        // 定义数组方式一
        var arr1 = [3]int{}
        // 定义数组方式二
        var arr2 = [3]int{1,2,3}
        // 定义数组方式三
        var arr3 = [3]int{1:10}
    
        fmt.Println("arr1",arr1)
        fmt.Println("arr2",arr2)
        fmt.Println("arr3",arr3)
    
        // 遍历
        for index,value := range arr2{
        	fmt.Printf("index:%d,value:%d
    ",index,value)
        }
    
        // 指针数组 数组元素为指针
    
        // 数组指针 指向数组的指针
        var arrp *[3]int
        arrp = &arr2
        fmt.Println(arrp)
        test(arrp)
        fmt.Println(arrp)
    }
    

    切片

    package main
    
    import "fmt"
    
    func main() {
    	// 切片长度不固定,可以自动扩容
        // 定义切片方式一
        var arr1 = []int{}
        // 定义切片方式二
        var arr2 = []int{1,2,3}
        // 定义切片方式三
        var arr3 = make([]int,5)
        // 定义切片方式四 长度5 容量10
        var arr4 = make([]int,5,10)
    
        fmt.Println("arr1",arr1)
        fmt.Println("arr2",arr2)
        fmt.Println("arr3 长度 len(arr3)",len(arr3))
        fmt.Println("arr4 容量 cap(arr4)",cap(arr4))
    
        // 添加元素
        arr2 = append(arr2,4)
        fmt.Println("arr2 添加元素4",arr2)
    
        // 切片复制
        a := []int{1,2,3}
        b := make([]int,3)
        copy(b,a)
        fmt.Println("a的值复制给b copy(b,a) a",a,"b",b)
        b = make([]int,2)
        copy(b,a)
        fmt.Println("a的值复制给b len(b)<len(a) a",a,"b",b)
        b = make([]int,4)
        copy(b,a)
        fmt.Println("a的值复制给b len(b)>len(a) a",a,"b",b)
        b = make([]int,0)
        copy(b,a)
        fmt.Println("a的值复制给b len(b)=0 a",a,"b",b)
    
    }
    

    切片与数组的关系

    • 切片本质是一个数组。容量固定是因为数组的长度是固定的,切片的容量即隐藏数组的长度。长度可变指的是在数组长度的范围内可变。

    • 内置函数append可以向一个切片后追加一个或多个同类型的其他值。如果追加的元素数量超过了原切片容量,那么最后返回的是一个全新数组中的全新切片。如果没有超过,那么最后返回的是原数组中的全新切片。无论如何,append对原切片无任何影响

    参考

    https://github.com/datawhalechina/go-talent/blob/master/5.数组、切片.md
    https://studygolang.com/articles/3148?fr=sidebar

  • 相关阅读:
    java自学
    java自学
    java自学
    java自学
    Interesting Finds: 2009 11.17 ~ 11.22
    Interesting Finds: 2009 10.09 ~10.13
    Interesting Finds: 2009 10.01 ~ 10.08
    Interesting Finds: 2009 10.14 ~ 10.21
    Interesting Finds: 2009 11.01 ~ 11.08
    Interesting Finds: 2009 10.25 ~ 10.31
  • 原文地址:https://www.cnblogs.com/rn-05181226-rw/p/14146677.html
Copyright © 2011-2022 走看看