首页 > 其他分享 >Go语言入门3(数组)

Go语言入门3(数组)

时间:2023-04-05 12:44:11浏览次数:34  
标签:10 arr 入门 初始化 int 数组 Go array

数组

​ 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。

⭐:在其他语言中数组大多是引用类型,但是在go语言中,数组是值类型

声明方式

  1. var + 数组名 + [数组长度] + 数组数据类型(数组内部初始化全为0)
// 声明一个长度为10的整型数组array,并初始化
var array [10]int
array = [10]int {0,1,2,3,4,5,6,7,8,9}
  1. 数组名 + ":=" + [数组长度] + 数据类型 + {数组初始化}
// 声明一个长度为10的整型数组array并进行初始化
array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

// 初始化过程也可以单独初始化特定的位数(用逗号连接)
// 声明一个长度为10的整型数组array并对数组的第5位进行初始化值为4,第3位进行初始化值为2
array := [10]int{5:4,3:2}
  1. 数组名 + ":=" + [...] + 数据类型 + {数组初始化}("..."可以自动判断数组长度)
// 声明一个长度为10的整型数组array并进行初始化
array := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

数组使用

通过下标访问数组的元素

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(arr[5])

遍历数组

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// i:数组下标 j: 下标对应的值
for i, j := range arr {
    fmt.Printf("%d : %d \t", i, j)
}

数组赋值数组

​ 数组可以给同它数据类型,数组长度相同的数组赋值

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

指针数组

​ 指针数组和数组本身差不多,只不过元素类型是指针

// 声明一个长度为10的整型指针数组
// 并在第5,6,7位上创建内存空间
arr := [10]*int{5:new(int),6:new(int),7:new(int)}
// 在第三位上创建内存空间
arr[3] = new(int)
// 在第三位上的内存空间里赋值为3
*arr[3] = 3
// 输出第三位对应的内存空间地址,以及值
fmt.Println(arr[3])
fmt.Println(*arr[3])

⭐:以上需要注意的是,只可以给第3,5,6,7位赋值,因为只有它们分配了内存,才可以赋值,如果我们给索引0赋值,运行的时候,会提示无效内存或者是一个nil指针引用。

标签:10,arr,入门,初始化,int,数组,Go,array
From: https://www.cnblogs.com/te9uila/p/17289155.html

相关文章

  • JavaScript快速入门(二)
    文件中引入JavaScript嵌入到HTML文件中在body或者head中添加script标签<script>varage=10;console.log(age);</script>引入js文件创建一个js文件varage=20;console.log(age);在html文件中src引入改文件<body><scriptsrc="./age.js"></scr......
  • 使用benchmark比较分治法与归纳法求解最大子数组问题的性能
    #include<benchmark/benchmark.h>#include<algorithm>#include<deque>#include<functional>#include<iostream>#include<random>#include<string>#include<vector>usingnamespacestd;staticconstint......
  • 性能测试入门实践路线图
    我转行做软件测试工作已有八年多了,从功能到自动化测试,然后负责性能测试团队和质量团队的技术专项治理,再到测试专家角色,负责整个技术项目的产品/运营和质量保障工作。其中性能测试和线上稳定性保障,算是我最擅长的技术领域。很多同学咨询过我,性能测试如何入门,如何快速提升压测和......
  • Systemd入门(1)
    Systemd并不是一个命令,而是一组命令,涉及到系统管理的方方面面。$systemctl--version#命令查看Systemd的版本。**systemctl是Systemd的主命令,用于管理系统**#重启系统$sudosystemctlreboot#关闭系统,切断电源$sudosystemctlpoweroff#CPU停止工作$sudosyste......
  • 染色数组
    定义集合\(S\)由同时满足以下条件的\(x\)构成:\([1,x)\)中\(\lea_{x}\)的元素和\((x,n]\)中\(\gea_{x}\)的元素构成递增子序列\([1,x)\)中\(\gea_{x}\)的元素和\((x,n]\)中\(\lea_{x}\)的元素构成递减子序列性质1:\(a\)为完美数组当且仅当\(S\ne\empty\)必要性:注......
  • 795. 区间子数组个数
    题目描述给一个数组,再给一个值的范围[l,r],问最大值在[l,r]之间的子数组有多少个?f1-双指针基本分析如果枚举子数组的右端点i,会有几种情况?(1)arr[i]>right;(left<=arr[i]<=right;(3)arr[i]<left假如枚举到右端点i,左端点怎么考虑?(1)的情况,这个子数组不满足,可以跳过;(2)......
  • 解决picgo上传图片到github失败的方法
    今天在typora上写笔记,发现图片不能上传到github上,网上找了几个方法,发现都不能解决问题,一直在报错,折腾一会才解决,下面分享我的解决问题过程:首先先检查自己配置是否有错,检查仓库名是否写错,是否带有空格,picgo空格默认的是‘_’,分支名字可以是main或master,token可以再生成一个复制......
  • ioc入门案例
          1、pom.xml引入spring<dependencies><!--引入spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>&l......
  • go run、build、install、get的原理和区别
    学习go也有好些年头了,都没怎么研究过go的编译命令。真是惭愧。今天学习并记录下结论:gorun专门用来运行命令源码文件的命令,一般用来运行单个文件gobuild主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件goinstall编译并安装代码包或者源码文件的。go......
  • python安装g2opy与pagolin踩坑记录
    0x00.前言本文是在python环境下跑slam时配置环境的一点记录,感谢代码作者uoip的贡献项目代码:g2opy:https://github.com/uoip/g2opypangolin:https://github.com/uoip/pangolin0x01.安装笔者的环境是使用anaconda搭建的虚拟环境,由于一开始没有激活虚拟环境导致踩坑,之后虽然......