zoukankan      html  css  js  c++  java
  • go语言——数组和切片

    go语言——数组和切片

    数组

    声明和初始化

    var variable_name [size] variable_type
    //默认值为0
    

    eg:

    var ss [10]int
    var s1 = [5]int{1,2,3,4,5}
    

    遍历

    方法一

    for i=0; i < len(arry);i++ {
    	flm.Println(i)
    }
    

    方法二

    for index, value := range array {
    	fmt.Println(index,value)
    }
    

    多维数组

    //存储了三个一维数组,每个一位数组长度为4
    var ss [3][4]int
    var ss1 [3][4]int{{},{},{}}
    

    切片

    声明

    var variable_name [] variable_type
    
    //slice会自动扩容,每次扩容len*2
    //每次扩容都会重新指向一个新的底层数组
    s1 := make([]int,3,8)
    si = append(s1,1,2)
    
    //切片原则类似python的列表,但没有步长
    //底层数组的修改会影响切片
    //切片的修改也会影响底层数组
    a := [5]int{1,2,3,4,5}
    a1 := a[1:3]
    

    引用传值一般使用make创建

    func make(t type,size,InttegerType) type

    第一个参数:类型

    ​ slice,map,chan

    第二个参数:长度

    ​ 实际存储的元素数量

    第三个参数:容量

    ​ 最多能够存储的元素数量

    深浅拷贝

    • 浅拷贝拷贝的是地址
    • 深拷贝拷贝的是值
    s1 := []int{1,2,3}
    copy(s2,s1)//将s1中的值拷贝到s2
    
    
  • 相关阅读:
    强联通 HDU 1269
    zznu 1255 数字统计(数位DP, 数学方法)
    POJ Round Numbers(数位DP)
    #1033 : 交错和
    XHXJ's LIS
    吉哥系列故事——恨7不成妻
    数字0-9的数量
    Balanced Number
    BALNUM
    F(x)
  • 原文地址:https://www.cnblogs.com/tomyyyyy/p/12901418.html
Copyright © 2011-2022 走看看