golang之數組,切片
阿新 • • 發佈:2017-12-31
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]=1a[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之數組,切片