数组

数组的定义和使用

/*
 数组:一组具有相同类型的数据在内存中有序的存储的数据集合
*/

/* 数组的定义 */
//var + 变量名 + 数据类型 =值
//var 数组名 [元素个数]数据类型={值1,值2,值3...}
//数组的声明 默认值0
//var arr [10]int

//数组的初始化
var arr [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
fmt.Println(arr)

//通过具体元素为数组赋值
//数组[下标] = 值
//arr[0] = 123

/*
计算数组元素的个数
*/
var array [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

//计算数组的个数
count := len(array)

//打印数组元素的值
//方法1
for i := 0; i < count; i++ {
//获取数组元素的值
fmt.Println(arr[i])
}

//方法2 range
//index 下标 value 值
// for 下标,值 :=range 数据集合
for index,value:=range array{
fmt.Println("下标:",index,"值:",value)
}

数组内存存储

//var arr [10]int=[10]int{1,2,3,4,5,6,7,8,9,10}

//自动推导类型创建数组
arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

//fmt.Printf("%T ",arr)//[10]int

for i := 0; i < len(arr); i++ {
//数组元素对应的内存地址c
fmt.Println(&arr[i])
}

数组的赋值

arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var arr1 [10]int

//数组名 arr
//使用一个数组为另外一个数组赋值 前提是元素个数相同 数据类型相同
//arr1 = arr

for i := 0; i < len(arr1); i++ {
//使用数组元素赋值
arr1[i] = arr[i]
}

//arr1[-1] = 123//err 数组下标越界 不能小于0
//arr1[5] = 123 //err 数组下标越界   不能大于元素个数-1

fmt.Println(arr1)

数组的逆置

//定义数组
arr:=[10]int{1,2,3,4,5,6,7,8,9,10}

//定义最小下标
j:=0
//定义最大下标
j:=len(arr)-1

for i<j{
//交换数据
arr[i],arr[j] = arr[j],arr[i]
//改变下标
i++
j--
}

 

数组作为函数参数

//定义数组
arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
//函数调用
test1(arr)

//函数
func test1(arr [10]int) {
arr[0] = 123
fmt.Println(arr)
}

随机数

rand.Seed(time.Now().UnixNano()) //获取1970年到现在的时间戳

reslut :=rand.Intn(100) //获取随机数 0-99

二维数组

//定义一维数组
//var 数组名 [元素个数]数据类型

//定义二维数组
//var 数组名 [行个数][列个数]数据类型

//数组声明 默认值为0
//var arr [3][4]int

//定义二维数组并赋值
var arr [3][4]int = [3][4]int{{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}}

//len(二维数组名) 计算结果为二维数组行个数
fmt.Println(len(arr)) //3
//len(二维数组名[下标]) 计算结果为二维数组列个数
fmt.Println(len(arr[0])) //4

//自动推导类型创建二维数组
arr := [3][4]int{{1, 2, 3, 4}, {2, 3, 4}, {6, 6, 6}}

//循环遍历数组
for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr[0]); j++ {
fmt.Printf("%d ", arr[i][j])
}
fmt.Println()
}

 

原文地址:https://www.cnblogs.com/muxinanan/p/14502042.html