1. 程式人生 > >golang之數組,切片

golang之數組,切片

log clas pac == import 類型 組合 長度 package

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之數組,切片