zoukankan      html  css  js  c++  java
  • golang之数组

    1.数组:同一种数据类型的固定长度的序列。

    2.数组定义:var a [len]int,例如:var a [5]int

    3.长度是数组类型的一部分,因此,var a[5] int 和 var a[10]int 是不同的类型

    4.数组可以通过下标进行访问,下标是从0开始,最后一个元素是len-1

    for  i:=0;i<len(a);i++{

    }

    5.访问越界,如果下标在数组合法范围之外,就会触发越界,panic异常

    package main
    
    import "fmt"
    
    func main() {
        var a [10]int
        a[0] = 100
        fmt.Println(a)
        for i := 0; i < len(a); i++ {
            fmt.Println(a[i])
        }
    
        for index, val := range a {
            fmt.Printf("a[%d]==%d
    ", index, val)
        }
    }

    6.数组是值类型,因此改变副本的值,不会改变本身的值

    package main
    
    import "fmt"
    
    func test2() {
        var a [10]int
        b := a
        b[0] = 100
        fmt.Println(a)
    
    }
    //传递指针
    func test3(arr *[5]int) {
        (*arr)[0] = 1000
    }
    
    func main() {
        //test2()
        var a [5]int
        //传 地址,改变 值类型
        test3(&a)
        fmt.Println(a)
    }

    7.费波纳茨数列

    package main
    
    import "fmt"
    //菲波那切数列,非递归方式实现,打印前50个数
    func fab(n int){
        var a[]uint64
        a = make([]uint64,n)
        a[0]=1
        a[1]=1
        for i:=2;i<n;i++{
            a[i]=a[i-1]+a[i-2]
        }
        for _,v:=range a{
            fmt.Println(v)
        }
    }
    func main(){
        fab(50)
    }

     8.声明数组,遍历数组

    package main
    
    import "fmt"
    
    //数组的初始化
    func testArray() {
        var a [5]int = [5]int{1, 2, 3, 4, 5}
        var a1 = [5]int{1, 2, 3, 4, 5}
        var a2 = [...]int{38, 283, 48, 38, 348, 387, 484}
        var a3 = [...]int{1: 100, 3: 200}
        var a4 = [...]string{1: "hello", 3: "world"}
        fmt.Println(a)
        fmt.Println(a1)
        fmt.Println(a2)
        fmt.Println(a3)
        fmt.Println(a4)
    }
    
    //多维数组
    func muchArray() {
        //两行五列的数组
        var a [2][5]int = [...][5]int{{1, 2, 3, 4, 5}, {7, 8, 9, 11, 12}}
        for row,v:=range a{
            for col,v1:=range v{
                fmt.Printf("(%d,%d)=%d
    ",row,col,v1)
            }
        }
    }
    
    func main() {
        //testArray()
        muchArray()
    }
  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/pyyu/p/8151720.html
Copyright © 2011-2022 走看看