var a [10]int for i :=0;i<len(a);i++{ fmt.Printf("%p\n",&a[i]) }
length:=len(a) 数组长度
数组初始化:
定义数组的时候,默认值都是0
产生另外一个数组,修改这个数组,并不会对原数组进行修改
func test2() { var a[5]int = [5]int {1,2,3,4,5} var b[5] int b = a fmt.Printf("%v\n",b) b[0] = 200 fmt.Printf("%v\n",b) fmt.Printf("%v\n",a) }
数组定义:
声明数组的时候,需要定义长度和类型!!!
写法:变量[长度]类型 = [长度]类型[值]
数组赋值:指定下标来指定元素赋值
%#以go的方式打印
var d [5]string = [5]string{1:"abc",4:"zcq"} //%# 以go的方式打印!!! fmt.Printf("%#%v\n",d) fmt.Printf("%v\n",a,b,c)
二维数组
var a[8][2]int
func test4() { //二维数组 var a[4][2]int for i:=0;i<4;i++{ for j:=0;i<2;j++{ a[i][i] = (i+1) *(j+1) } } for i:=0;i<4;i++{ for j:=0;i<2;j++{ fmt.Printf("%d",a[i][j]) } fmt.Println() } }
数组赋值:随机数字放入数组
切记:go是强类型语言,所以类型如果不一样,是编译不过去的
使用随机数模块,使用time模块
r := rand.New(rand.NewSource(time.Now().Unix())
func test5() { //随机数字放入数组 r := rand.New(rand.NewSource(time.Now().Unix())) var five [100]int //数组 通过索引来赋值 for i:=0;i<len(five);i++{ //赋值操作 five[i]=r.Int() //取值操作 fmt.Printf("%d\n",five[i]) } fmt.Printf("%d\n",five) }
数组赋值:随机字符串放入数组
go里面是utf-8编码
Sprintf 格式化并返回格式化后的字符串,可直接赋值!!!
func test6() { var a [100]string var b string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" for i:=0;i<len(a);i++{ var str string for j:=0;j<len(b);j++{ index :=rand.Intn(len(b)) //Sprintf 格式化并返回格式化后的字符串 str = fmt.Sprintf("%s%c",str,b[index]) } a[i] = str fmt.Printf("a[%d]=%s\n",i,a[i]) } }