首页 > 编程语言 > 详细

golang之数组,切片

时间:2017-12-31 10:42:45      阅读:252      评论:0      收藏:0      [点我收藏+]

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\n", 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)
}

 

golang之数组,切片

原文:https://www.cnblogs.com/pyyu/p/8151720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!