首页 > 其他分享 >golang-数组基本使用

golang-数组基本使用

时间:2024-07-09 16:22:53浏览次数:13  
标签:基本 遍历 int fmt value golang range 数组

Go语言中的数组是一个固定长度的元素序列,这些元素都是相同的类型。数组是值类型,这意味着当它们被赋值给新的变量时,会进行一次数组的复制。

创建数组

通过指定元素类型和数组长度来创建数组。数组长度必须是一个常量表达式,因为数组的长度是其类型的一部分。 数组的数量一旦确定就不能更改了,就是说大小不可变

var a [5]int // 声明一个包含5个整数的数组,默认值为0
b := [3]int{1, 2, 3} // 声明并初始化一个包含3个整数的数组
c := [...]int{4, 5, 6} // 使用...让编译器自动计算数组的长度

元素类型

数组可以包含任何类型的元素,包括但不限于整数、浮点数、字符串甚至其他数组。

var d [2]string // 包含2个字符串的数组
var e [3][2]int // 二维数组,包含3个包含2个整数的数组

遍历数组

遍历数组通常使用for循环,可以通过索引遍历,也可以使用range关键字遍历。

// 通过索引遍历
for i := 0; i < len(a); i++ {
    fmt.Println(a[i])
}

// 使用range遍历
for index, value := range b {
    fmt.Printf("Index: %d, Value: %d\n", index, value)
}

使用range时,它会返回两个值:当前索引和该索引处的元素值。如果只需要元素值,可以使用_作为匿名变量来忽略索引:

for _, value := range b {
    fmt.Println(value)
}

二维数组

二维数组在Go中是元素类型为数组的数组。

// 声明并初始化一个二维数组
var f [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}

// 遍历二维数组
for i := 0; i < len(f); i++ {
    for j := 0; j < len(f[i]); j++ {
        fmt.Printf("Element [%d][%d] = %d\n", i, j, f[i][j])
    }
}

// 使用range遍历二维数组
for i, row := range f {
    for j, value := range row {
        fmt.Printf("Element [%d][%d] = %d\n", i, j, value)
    }
}

标签:基本,遍历,int,fmt,value,golang,range,数组
From: https://www.cnblogs.com/jianqiu/p/18291655

相关文章

  • 1 python介绍、基本语法、流程控制
     一、Python介绍python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是......
  • LeetCode 1546. 和为目标值且不重叠的非空子数组的最大数目
    1546.和为目标值且不重叠的非空子数组的最大数目给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例1:输入:nums=[1,1,1,1,1],target=2输出:2解释:总共有2个不重叠子数组(加粗数字表示)[1,......
  • 比较两个数组中是否有相同的元素
    双重遍历循环太过复杂点击查看代码letarr1=[1,2,3];letarr2=[1,2,3,4];lethasCommonElement=false;for(leti=0;i<arr1.length;i++){for(letj=0;j<arr2.length;j++){if(arr1[i]===arr2[j]){hasCommonElement=true;......
  • 代码随想录算法训练营第27天 | 122.买卖股票的最佳时机 II 55. 跳跃游戏 1005.K次取反
    122.买卖股票的最佳时机II给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。解题:思路:最终利润是可......
  • 代码随想录刷题day 6 | 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交
    242.有效的字母异位词383.赎金信classSolution{//这里只给出了242的代码,赎金信的解法可以说是基本相同的publicbooleanisAnagram(Strings,Stringt){int[]map=newint[26];for(charc:s.toCharArray())map[c-'a']++;for(char......
  • MySQL数据库基本操作-DDL和DML
    1.DDL解释DDL(DataDefinitionLanguage),数据定义语言,该语言部分包括以下内容:对数据库的常用操作对表结构的常用操作修改表结构2.对数据库的常用操作功能SQL查看所有的数据库showdatabases;查看有印象的数据库show databaseslike'_xx%'(_一个字符;%任意字符)创建数据......
  • Docker容器的基本操作
    1容器操作添加容器的两种方法会自动添加生成一个随机名字#启动dockersystemctlstatusdockersystemctlstartdockersystemctldaemon-reload#重新加载docker配置systemctlrestartdocker#重启docker#1镜像操作 -dockersearch -dockerpull......
  • 高效维护区间之和/区间最值的数据结构(一)——树状数组
    高效维护区间之和/区间最值的数据结构(一)——树状数组树状数组的核心思想:分治。将数组以二叉树的形式进行维护区间之和。设aaa为原数组,......
  • 代码随想录算法训练营第五天|LeetCode242.有效的字母异位词 LeetCode 349. 两个数组的
    代码随想录算法训练营Day5代码随想录|LeetCode242.有效的字母异位词LeetCode349.两个数组的交集LeetCode202.快乐数LeetCode1.两数之和文章目录代码随想录算法训练营前言代码随想录原文--哈希表今天的内容真的很有挑战o(╥﹏╥)o,做了很久一、哈希表基础理论1......
  • 【RT-Thread基础教程】线程的基本使用
    前言在嵌入式系统开发中,RTOS(Real-TimeOperatingSystem)扮演着至关重要的角色,而RT-Thread作为一款开源的实时操作系统,在嵌入式领域中备受欢迎。线程是RTOS中的基本执行单元,其良好的多任务处理能力使得嵌入式系统能够更有效地响应各种事件和任务。本文将着重介绍在RT-Thread......