写点什么

Go- 数组

用户头像
HelloBug
关注
发布于: 46 分钟前
Go- 数组

Go 学习笔记,学习内容《Go入门指南》


主要介绍以下内容:

  • 数组定义

  • 遍历数组

  • 数组值拷贝

  • 数组指针拷贝

  • 数组常量

  • 多维数组


代码示例可以直接运行

package main
import ( "fmt")
func printDivider(str ...string) { fmt.Println("-----------------------------------------------") if len(str) > 0 { fmt.Println(str) }}
func main() { /* 数组 1、数组中元素类型均相同 2、数组长度必须是常量表达式,且是非负整数 3、数组声明时必须指定长度 4、数组长度最大值为2GB 5、数组声明之后自动默认初始化为零值 6、可根据数组索引进行取值、赋值,即数组是可变的,索引从0开始 */ var arr [5]int // 声明数组,指定长度,默认初始化为0 arrLen := len(arr) // 获得数组长度 arr[1] = 1 // 根据索引赋值
fmt.Println("The Array Elements are as follows:") for i := 0; i < arrLen; i++ { // 数组元素从0开始 fmt.Printf("%d ", arr[i]) // 根据索引获得数组元素值 } fmt.Printf("\nThe Array Length is %d\n", arrLen)
/* for range方式遍历数组 */ printDivider("for range") for i, v := range arr { fmt.Printf("Index = %d, Value = %d\n", i, v) }
/* 数组是一种值类型 */ printDivider("Array Value") var arr1 [5]int var arr2 = new([5]int) fmt.Printf("arr1 = %p\n", arr1) // 输出:arr1 = %!p([5]int=[0 0 0 0 0]) fmt.Printf("arr1 = %v\n", arr1) // 输出:[0 0 0 0 0]---arr1是一个值类型的数组 fmt.Printf("arr2 = %p\n", arr2) // 输出:arr2 = 0xc00000c450---arr2是一个指针
fmt.Println(arr1) // 输出:[0 0 0 0 0] fmt.Println(arr2) // 输出:&[0 0 0 0 0]
/* 数组值拷贝 因为数组是值类型,所以数组之间相互赋值是值拷贝 */ printDivider("Array Copy Value") arr3 := arr1 arr3[3] = 66 fmt.Println(arr1) // 输出:[0 0 0 0 0] fmt.Println(arr3) // 输出:[0 0 0 66 0]
/* 数组指针拷贝 */ printDivider("Array Copy Point") arr4 := arr2 arr4[2] = 88 fmt.Println(arr2) // 输出:&[0 0 88 0 0] fmt.Println(arr4) // 输出:&[0 0 88 0 0]
/* 数组常量 */ printDivider("Array Constant") s := [...]string{"a", "b", "c"} fmt.Printf("Length of s = %d\n", len(s)) // 输出:Length of s = 3
a1 := [6]int{1, 2, 3} fmt.Printf("Length of a = %d\n", len(a1)) // 输出:Length of a = 6 fmt.Println(a1) // 输出:[1 2 3 0 0 0]
/* 多维数组 */ printDivider("Multidimensional Arrays") var m1 [2][3]int fmt.Printf("Length of m1 = %d\n", len(m1)) // 输出:Length of m1 = 2 fmt.Printf("length of m1[0] = %d\n", len(m1[0])) // 输出:length of m1[0] = 3 fmt.Printf("m1[1][1] = %d\n", m1[1][1]) // 输出:m1[1][1] = 0 m1[1][1] = 99 fmt.Printf("m1[1][1] = %d\n", m1[1][1]) // 输出:m1[1][1] = 99}
复制代码


发布于: 46 分钟前阅读数: 2
用户头像

HelloBug

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
Go- 数组