博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go语言学习(五)----- 数组
阅读量:6162 次
发布时间:2019-06-21

本文共 1546 字,大约阅读时间需要 5 分钟。

前几天一直在忙,今天才有时间继续学习Go语言。

我也不知道会坚持多久,会学到什么地步,不过我会坚持,尽可能地坚持学下去...

 

回到正题,数组是Go语言中的一个重要的类型,由[n]<type> 定义,n 标示array 的长度,而<type> 标示希望存储的内容的类型。

申明一个数组:

var arr1 [10]int

Go语言中的数组一般有固定的大小,大小是类型的一部分。由于不同的大小是不同的类型,因此不能改变大小。

数组同样是值类型的:将一个数组赋值给另一个数组,会复制所有的元素。

尤其是当向函数内传递一个数组的时候,它会获得一个数组的副本,而不是数组的指针。

代码为证:

1 package main 2  3 import "fmt" 4  5 func modify(array [5]int) { 6     array[0] = 10 7     fmt.Println("In modify(), array values:", array) //[10 2 3 4 5] 8 } 9 10 func main() {11     array := [5]int{1, 2, 3, 4, 5}12     modify(array)13     fmt.Println("In main(), array values:", array) //[1 2 3 4 5]14 }

输出结果为:

In modify(), array values: [10 2 3 4 5]In main(), array values: [1 2 3 4 5]

正好印证了上面说的:当向函数内传递一个数组的时候,它会获得一个数组的副本,而不是数组的指针。

 

关于数组的申明方式已经二维数组的使用见如下实例:

package mainimport "fmt"func main() {    //申明一个长度为10的int数组    var arr1 [10]int    arr1[0] = 42    arr1[1] = 13    fmt.Printf("The element is %d\n", arr1[0]) //42    fmt.Printf("The element is %d\n", arr1[9]) //默认值0来初始化    fmt.Println(arr1)    //申明一个长度为3,值分别为1,2,3的数组    arr2 := [3]int{1, 2, 3}    fmt.Println(arr2)    //如下情况,Go会自动统计元素个数    arr3 := [...]int{1, 2, 3}    fmt.Println(arr3)    //二维数组,如下3中方式都可以    //a := [2][2]int{ [2]int{1,2}, [2]int{3,4} }    //a := [2][2]int{ [...]int{1,2}, [...]int{3,4} }    a := [2][2]int{
{1, 2}, {3, 4}} fmt.Println(a) fmt.Printf("%d\n", a[0][0]) //1 fmt.Printf("%d\n", a[0][1]) //2 fmt.Printf("%d\n", a[1][0]) //3 fmt.Printf("%d\n", a[1][1]) //4}

 

数组就到这里了,明天继续slices~~

转载于:https://www.cnblogs.com/yejg1212/archive/2013/03/25/2981651.html

你可能感兴趣的文章
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
深入python的set和dict
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>