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 []int
a[] =
fmt.Println(a)
for i := ; 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 []int
b := a
b[] =
fmt.Println(a) }
//传递指针
func test3(arr *[]int) {
(*arr)[] =
} func main() {
//test2()
var a []int
//传 地址,改变 值类型
test3(&a)
fmt.Println(a)
}

7.费波纳茨数列

package main

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

8.声明数组,遍历数组

package main

import "fmt"

//数组的初始化
func testArray() {
var a []int = []int{, , , , }
var a1 = []int{, , , , }
var a2 = [...]int{, , , , , , }
var a3 = [...]int{: , : }
var a4 = [...]string{: "hello", : "world"}
fmt.Println(a)
fmt.Println(a1)
fmt.Println(a2)
fmt.Println(a3)
fmt.Println(a4)
} //多维数组
func muchArray() {
//两行五列的数组
var a [][]int = [...][]int{{, , , , }, {, , , , }}
for row,v:=range a{
for col,v1:=range v{
fmt.Printf("(%d,%d)=%d\n",row,col,v1)
}
}
} func main() {
//testArray()
muchArray()
}
上一篇:.Net Core使用jexus配置https


下一篇:RE合同记账会计凭证