首页 > 其他分享 >无涯教程-Go - 多维数组函数

无涯教程-Go - 多维数组函数

时间:2023-12-21 15:32:26浏览次数:48  
标签:int 无涯 var 多维 二维 数组 Go

Go编程语言允许多维数组,这是多维数组声明的一般形式-

var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type

如,以下声明创建了三维5、10、 4个整数数组-

var threedim [5][10][4]int

二维数组

二维数组是多维数组的最简单形式,本质上,二维数组是一维数组的列表,要声明大小为[x,y]的二维整数数组,您将编写如下内容:

var arrayName [ x ][ y ] variable_type

其中 variable_type 可以是任何有效的Go数据类型,而 arrayName 是有效的Go标识符,可以将二维数组视为一个表,该表将具有x的行数和y的列数。

初始化二维数组

可以通过为每行指定括号中的值来初始化多维数组。以下是具有3行的数组,每行有4列。

a=[3][4]int{  
   {0, 1, 2, 3} ,   /*  由 0 索引的行的初始值设定项 */
   {4, 5, 6, 7} ,   /*  由 1 索引的行的初始值设定项 */
   {8, 9, 10, 11}   /*  由 2 索引的行的初始值设定项 */
}

访问二维数组元素

使用下标访问二维数组中的元素,即数组的行索引和列索引。如-

int val=a[2][3]

上面的语句将从数组的第三行获取第4个元素,让我们检查下面的程序,其中我们使用嵌套循环来处理二维数组-

package main

import "fmt"

func main() {
   /* 一个 5 行 2 列的数组 */
   var a=[5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}}
   var i, j int

   /* 输出每个数组元素的值 */
   for  i=0; i < 5; i++ {
      for j=0; j < 2; j++ {
         fmt.Printf("a[%d][%d]=%d\n", i,j, a[i][j] )
      }
   }
}

编译并执行上述代码后,将产生以下输出-

a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8

如上所述,您可以具有任意数量的维度数组,尽管您创建的大多数数组可能都是一维或二维的。

参考链接

https://www.learnfk.com/go/go-multi-dimensional-arrays.html

标签:int,无涯,var,多维,二维,数组,Go
From: https://blog.51cto.com/u_14033984/8924488

相关文章

  • vscode 错误 go: go.mod file not found in current directory or any parent directo
    前言安装VSCODE后,新建立的GO文件按F5出错。go:go.modfilenotfoundincurrentdirectoryoranyparentdirectory;see'gohelpmodules'处理步骤开启gomodules功能命令行输入goenv-wGO111MODULE=on建立src目录比如我程序文件夹名为gosrc,则目录为gosrc|_src......
  • 无涯教程-Go - 函数闭包
    Go编程语言支持可以充当函数闭包的匿名函数,当我们要内联定义函数而不传递任何名称时,将使用匿名函数。在我们的示例中,我们创建了一个函数getSequence(),该函数返回另一个函数,此函数的目的是关闭上层函数的变量i形成闭包。如-packagemainimport"fmt"funcgetSequence()func......
  • permify google zanzibar 类似的开源授权服务实现
    permifygooglezanzibar类似的开源授权服务实现,openfga也是一个类似的开源实现参考架构从下图可以看出permify主要包含了四个组件,PermissionServer,RelationshipServer,SchemaServer,WatchServer说明目前不少开源的授权认证方案,都会基于配置定义的模式开发(schema)比较灵活......
  • 无涯教程-Go - Function as Value函数
    在下面的示例中,我们使用函数定义初始化了一个变量,该函数变量的目的只是使用内置的math.sqrt()函数。如-packagemainimport("fmt""math")funcmain(){/*声明一个函数变量*/getSquareRoot:=func(xfloat64)float64{returnmath.Sqrt(x)}/*......
  • 【Django】加密 settings.py文件中的数据库密码
    1.使用fromcryptography.fernetimportFernet第三方库pip3installcryptography2.Fernet的使用fromcryptography.fernetimportFernet#生成加密密钥key=Fernet.generate_key()#创建Fernet对象fernet=Fernet(key)#要加密的原始数据message=b"Hell......
  • Typora+PicGo 搭建免费图床
    前言对于经常写文章的人来说图片的管理一直是一个比较头疼的问题,最好的解决方案就是搭建一个图床,写文章的时候直接把图片上传上去,只要拿到链接在哪都能访问。如果还是免费的,是不是爽飞了。来试一下吧极力推荐:Typora+PicGo+SM.MS为什么选SM.MS:七牛云https收费、又拍云需要......
  • 【go】Go (Golang) 语言-Golang 定时器Timer和Ticker、time.AfterFunc、time.NewTicke
    Golang定时器Timer和TickerGolang定时器包括:一次性定时器(Timer)和周期性定时器(Ticker)。编程中经常会通过timer和ticker、AfterFunc定时器NewTicker是设定每隔多长时间触发的,是连续触发,而计时器NewTimer是等待多长时间触发的,只触发一次,两者是不同的。等待时间函数AfterFunc是......
  • 无涯教程-Go - for 循环函数
    for循环是一个重复控制结构,它允许您编写一个需要执行特定次数的循环。for-语法Go编程语言中for循环的语法为-for[condition|(init;condition;increment)|Range]{statement(s);}for-示例packagemainimport"fmt"funcmain(){varbint=15......
  • 无涯教程-Go - select 语句函数
    Go编程语言中select语句的语法如下-select{casecommunicationclause:statement(s);casecommunicationclause:statement(s);/*你可以有任意数量的case语句*/default:/*可选*/statement(s);}select-示例packag......
  • gorm 阅读3
    gorm相互关联//ConfigGORMconfigtypeConfigstruct{---------- Dialector-------- callbacks*callbacks cacheStore*sync.Map}//DBGORMDBdefinitiontypeDBstruct{ *Config Errorerror RowsAffectedint64 Statement*Statement......