首页 > 其他分享 >02. 复合类型(Composite Types)

02. 复合类型(Composite Types)

时间:2024-09-15 15:14:16浏览次数:3  
标签:02 10 Composite int 数组 类型 var Go Types

1. 数组

像大多数编程语言一样,Go也有数组。然而,在Go中很少直接使用数组。
数组中的所有元素都必须是指定的类型(这并不意味着它们总是相同的类型)。有几种不同的声明风格。在第一个语句中,指定数组的大小和数组元素的类型:

 var x [3]int

这将创建一个包含三个整型数的数组。由于没有指定任何值,因此所有位置(x[0],x[1]和x[2])都被初始化为int类型的零值,当然是0。如果有数组的初始值,你可以用array literal来指定它们:

var x = [3]int{10, 20, 30}

如果你有一个稀疏数组(一个大多数元素都被设置为零值的数组),你可以只指定数组文字中有值的下标:

var x = [12]int{1, 5: 4, 6, 10: 100, 15}

当使用array literal初始化数组时,可以省略数字并使用…来代替:

var x = [...]int{10, 20, 30}

可以使用==和!=来比较数组:

var x = [...]int{1, 2, 3}
var y = [3]int{1, 2, 3}
fmt.Println(x == y) // prints true

Go只有一维数组,但是可以模拟多维数组:

var x [2][3]int

这里声明x是一个长度为2的数组,其类型是一个长度为3的整型数组。这听起来很迂腐,但是有些语言具有真正的矩阵支持;go不是其中之一。

像大多数语言一样,Go中的数组是使用括号语法读写的:

x[0] = 10
 fmt.Println(x[2])

内置函数len接受一个数组并返回其长度:

fmt.Println(len(x))

前面我说过,在Go中很少显式地使用数组。这是因为它们有一个不寻常的限制:Go认为数组的大小是数组类型的一部分。这使得声明为[3]int的数组与声明为[4]int的数组类型不同。这也意味着不能使用变量来指定数组的大小,因为类型必须在编译时解析,而不是在运行时解析。

标签:02,10,Composite,int,数组,类型,var,Go,Types
From: https://www.cnblogs.com/yyyylllll/p/18415255

相关文章

  • GESP5级 2024 9 7 T2 解析 <全网首发>
    题目3.2编程题2试题名称:挑战怪物时间限制:1.0s内存限制:512.0MB3.2.1题面描述小杨正在和一个怪物战斗,怪物的血量为,只有当怪物的血量恰好为时小杨才能够成功击败怪物。小杨有两种攻击怪物的方式:    1.物理攻击。假设当前为小杨第次使用物理攻击,则会对......
  • 2024.9.15 NOIP2024#6模拟赛
    不怎么模拟的模拟赛。比赛界面吐槽以IOI赛制来模拟OI赛事,\(jzyz\)真难绷。暴力有点难打,纯暴力(全排列)等拿的分少。不会写(我太蒻了)。\(T4\)暴力让我怒砍\(\textcolor{#ecdb44}{65pts}\)。文件\(IO\)是开考后加的。跟新高二打打了个倒数,压迫感略强。看了\(1h\)......
  • TypeScript很麻烦?,不想使用!
    前言最近,我们部门在开发一个组件库时,我注意到一些团队成员对使用TypeScript表示出了抵触情绪,他们常常抱怨说:“TypeScript太麻烦了,我们不想用!”起初,我对此感到困惑:TypeScript真的有那么麻烦吗?然而,当我抽时间审查队伍的代码时,我终于发现了问题所在。在这篇文章中,我想和大家分享我的一......
  • 【2025】springboot社区家政服务预约系统课题背景(源码+文档+调试+答疑)
     目录一、整体目录:项目包含源码、调试、修改教程、调试教程、讲解视频、开发文档(项目摘要、前言、技术介绍、可行性分析、流程图、结构图、ER属性图、数据库表结构信息、功能介绍、测试致谢等约1万字)二、运行截图三、代码部分(示范):四、数据库表(示范):数据库表有注释,可以......
  • idea2024.2永久使用
    废话不多说,先上图亲测有效IDEA安装步骤官网下载:https://www.jetbrains.com/idea/download/  版本idea2024.2双击下一步安装完成工具使用说明出现这个界面就ok啦,大功告成,可以愉快的玩耍啦......
  • 2024-06-02 矩阵重塑2
    include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e4+1;intmar[maxn];voidtmar(intmar[],constintn,constintm){intmat[n+1][m+1],mat1[m+1][n+1];inti,j;for(i=1;i<=n;i++){for(j=1;j<=m;j++){mat[i][j]=mar[(i-1)*m+j];}}for(......
  • 【2025】javaweb教师工作量管理系统(源码+文档+调试+答疑)
    ......
  • xyctf2024 pwn
    helloworldchecksec大多保护都开启了main函数int__fastcallmain(intargc,constchar**argv,constchar**envp){charbuf[20];//[rsp+0h][rbp-20h]BYREFinit();printf("%s","pleaseinputyourname:");read(0,buf,0x48uLL);p......
  • 高级java每日一道面试题-2024年9月12日-架构篇[DDD领域驱动篇]-如何使用领域驱动设计(D
    如果有遗漏,评论区告诉我进行补充面试官:如何使用领域驱动设计(DDD)中的事务脚本模式?我回答:在Java高级面试中,讨论如何使用领域驱动设计(DDD)中的事务脚本模式是一个很好的话题,因为它不仅考察了面试者对DDD原则的理解,还检验了其在实际项目中应用这些原则的能力。事务脚本模......
  • 51单片机-DS1302(实时时钟+可调时钟)(可参考主页上一节内容介绍)
    作者:王开心时间:2024.9.10目的:手撕51main.c#include<REGX52.H>#include"LCD1602.h"#include"DS1302.h"#include"Key.h"#include"Delay.h"#include"Timer0.h"unsignedcharKeyNum,MODE,TimeSetSelect,TimeS......