Go- 数组
发布于: 46 分钟前
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
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/a6282ec283eea4582782b56ed】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
HelloBug
关注
还未添加个人签名 2018.09.20 加入
还未添加个人简介
评论