数组注意事项和细节(1)|学习笔记

简介: 快速学习数组注意事项和细节(1)。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:数组注意事项和细节(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9630


数组注意事项和细节(1)

 

一、数组注意事项和细节

1.数组使用注意事项和细节

(1) 数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化。 

//相同类型:如果定义了一个数组为 int 类型,那么它只能存放 int,比如为 int32,则只能存 int32类型的数据

//数组的长度本身是数据类型的一部分,如果长度一但确定,则不能动态增长

(2) 案例:

新建一个文件夹为 arraydetails,再新建一个文件为 main.go

package main

import (

"fmt"

)

func main(){  //定义一个组函数

//数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化

(3) 例子:

var arr01 [3]int  //定义一个数组,存放三个数据,类型是int。

arr01[0]=1  //第一个元素值为1

arr01[1]= 30  //第二个元素值为30

//arr01[2]=1.1 //第三个元素值为1.1

//注意:这里会报错,因为数据类型定义的是int类型,所以不能赋予值为小数,数据类型不匹配

arr01[2]=90

//其长度是固定的,不动态变化,则报越界

arr01[3]=890  //注意:由于定义的是三个元素的数组,如果定义的4个元素,就会超过数组的范围,从而报错

fmt.Println(arr01)  //打印并输出数组

(4) var arr []intarr 就是一个 slice 切片,切片后面专门讲解

//go 语言中[]需要写大小

(5) 数组中的元素可以是任何数据类型,包括值类型和引用类型,但是不能用。

//数组中int既可以是基本数据类型也可以是引用类型

//不能混用:数组中定义的是什么类型,就只能包含这个类型的数据,就不可以又使用 int,又使用 float

(6) 数组创建后,如果没有赋值,有默认值(零值)

//数组创建以后如果没有进行赋值,其实元素有默认值,这个默认值就是零值

数值类型数组:默认值为0  //如果数组为 int 或者 float 类型,则默认值为0

字符串数组:默认值为“” //如果数组为字符串类型,默认值为空串

Bool :默认值为 false  //如果数组为布尔类型,默认值为 false

(7) 案例:

数值(整数系列,浮点数系列)=>0

宇符串==>“”

布尔类型==> false

var arr01 [3]float32

var arr02 [3]string

var arr03 [3]bool

fmt.Printf( "arr01=%v  arr02=%v  arr03=%v\n", arr01,arr02,arr03)  //打印三个数组

//直接使用数组输出,就会找到数组的首地址,然后把整个数组的数据输出出来

运行结果如下:

arr01=[0 0 0]  arr02=[   ]  arr3=[false  false  false  false]

(8) 使用数组的步骤

声明数组并开辟空间  //在定义数组的时候,数据空间就已经被分配了

给数组各个元素赋值  //如果不赋值则默认为零值

使用数组  //通过下标访问数组的各个元素

(9) 数组的下标是从0开始的。

(10) 数组下标必须在指定范围内使用,否则报 panic。数组越界

比如

var arr [5]int则有效下标为0-4

(11) Go 的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响

(12) 如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)

相关文章
10、pip换源加速下载的方式
10、pip换源加速下载的方式
10、pip换源加速下载的方式
|
安全 小程序 物联网
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
1877 0
WLAN基础 无线局域网配置方法 旁挂三层组网隧道转发方式配置
|
SQL Oracle 关系型数据库
能与PowerDesigner媲美的数据库建模工具PDMan
在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。
595 0
能与PowerDesigner媲美的数据库建模工具PDMan
|
程序员 API Android开发
iOS开发:简单的Toast提示框实现
博主是以iOS开发出身,那就最后一篇博文就分享一下关于iOS的内容吧。iOS开发过程中,有些时候操作App的时候,需要给用户对应的响应提示操作,使用系统自带的提示框不是每种情况都适用的。
1015 0
iOS开发:简单的Toast提示框实现
|
NoSQL 关系型数据库 MySQL
使用redis( RedisTemplate )中的BitMap 记录用户签到情况
使用redis( RedisTemplate )中的BitMap 记录用户签到情况
807 0
如何解决MyBatisPlus插入时生成的id为很大的数
如何解决MyBatisPlus插入时生成的id为很大的数
509 0
如何解决MyBatisPlus插入时生成的id为很大的数
|
存储 算法 NoSQL
浅谈软件编程中的8大数据结构
浅谈软件编程中的8大数据结构
448 0
浅谈软件编程中的8大数据结构
|
消息中间件 存储 SQL
分布式事务理论详解
分布式事务理论详解
389 0
分布式事务理论详解
|
算法 IDE 大数据
二分法,不止是算法 - 你可能不知道的二分法应用
二分法大家都知道,记得应该是从初中学数学就学过,而在编程中也经常使用二分法来进行有序数列的查找。然而二分法并不紧紧局限于算法中的使用,他还被广泛使用于我们的工具中、数学中甚至生活中。
|
IDE Linux 开发工具
cocos creator 代码编辑环境配置
Visual Studio Code (以下简称 VS Code)是微软新 推出的轻量化跨平台IDE,支持 Windows、Mac、Linux 平台,安装和配置非常简单。通过下面介绍的设置方法,使用 VS Code 管理和编辑项目脚本代码,可以轻松实现语法高亮、智能代码提示等功能,还可以直接使用 VS Code 调试网页和原生版本的游戏。
422 0
cocos creator 代码编辑环境配置