发布时间:2019-08-25 09:33:22编辑:auto阅读(1814)
数组:var 变量名[len]type
使用场景:
固定需求的时候,使用数组,不可超出指定长度
长度也是数组类型的一部分
底层内存空间是连续的
用来存储常量
数组是一种特殊的字典.....
数组写入,赋值的方式, 数组[索引]=值
数组是值类型,如果copy成另外一个数组,那修改这个数组,原来的数组并不会改变
数组初始化:
定义: var 变量名 [len]type
第一种:
var a[5] int = [5]int{1,2,3,4,5}第二种:
ceshi :=[5]int{1,3,4,5}第三种
var b = [5]int{1,3}第四种(当不可知长度的时候使用 ...),需要注意的是在切片中也有这种用法,不过含义不一样
var c = [...]int{1,3,4,5,10}
示例:
var a[5]int var a[5]string var a[5]float32 var a[5]bool
访问数组中的元素:
使用下标访问: a[0]访问第一个元素。长度为5的数组访问如下: a[0], a[1], a[2], a[3], a[4]
数组中的长度:
var a[10]int
lengh :=len(a)
示例代码拆分部分:
数组循环:
格式化%p,用来打印内存地址
& 符号,取变量地址
尽量用变量来循环
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])
}
}
上一篇: LVM3
下一篇: Webx3的ToolFactory
51272
50713
41317
38129
32591
29499
28351
23214
23184
21507
1584°
2304°
1912°
1854°
2174°
1897°
2587°
4324°
4176°
2980°