下载APP

【Go学习笔记3】go语言中的基本数据类型和包的介绍(二)

数组声明

package main

import (
	"fmt"
)

func main(){
	//定义一个数组
	var arr [10] int;
	fmt.Println(arr);
}

使用数组字面量声明数组

package main

import (
	"fmt"
)

func main(){
	array := [5]int{1,2,3,4,5}
	fmt.Println(array);
}
//[1 2 3 4 5]

不指定数组长度

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	fmt.Println(array)
}
//[1 2 3 4]

上面[...]表示有go语言自动计算数组长度。

使用数组

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	//修改数组的值
	array[2] = 22
	fmt.Println(array)
}
//[1 2 22 4]

如果试图给超过数组长度的位置赋值,会出错

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	//修改数组的值
	array[21] = 22
	fmt.Println(array)
}
//./main.go:10:7: invalid array index 21 (out of bounds for 4-element array)

数组复制

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	array2 := array
	fmt.Println(array,array2)
}
//[1 2 3 4] [1 2 3 4]
package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	array2 := array;
	array2[0] = 10;
	fmt.Println(array,array2);
}
//[1 2 3 4] [10 2 3 4]

可以发现,这里更改了arra2中的元素之后,array中的元素并没有改变。

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}
	array2 := &array;//注意这里的不同
	array2[0] = 10;
	fmt.Println(array,array2);
}
//[10 2 3 4] &[10 2 3 4]

上面这段代码,把array的地址赋值给了array2,所以在修稿array2的时候,array一中也会生效。

数组遍历

package main

import (
	"fmt"
)

func main(){
	array := [...]int{1,2,3,4}

	for i:=0;i<len(array);i++{
		fmt.Println(array[i])
	}
}
/*
1
2
3
4
*/