go语言数组(详细介绍)
2023-09-27 14:20:14 时间
介绍Go语言的数组使用方法
(一)数组简介
数组是最简单的数据结构之一,是具有相同唯一类型的一组已编号且长度固定的数据项序列
(类型的话可以是整形、字符串、自定义数据类类型)数组存储数据使得数据更方便的存储查询
(二)go语言数组声明
①先声明后初始化直接初始化
声明数组的类型、大小
var myint [5]int
对数组进行赋值
for i := 0; i < 5; i++ {
myint[i] = i
}
②直接初始化
一维数组:
var 数组名 [数组大小] 数组元素的数据类型{} //{}代表将数组声明的同时将他初始化一下
例如:
var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
多维数组:
二维数组是最简单的多维数组
声明方式如下:
var 数组名 [][][]...[][]数组类型
二维数组声明
var 数组名 [x][y] 数据类型
可以认为x是行y是列
例如:
var mytwostr = [2][3]int{{1, 2, 3},
{2, 3, 4}}
(三)对数组内的元素进行操作
(0)遍历数组
①使用range关键字
var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
//这里 _ 空白字符前面已经介绍过,这里是为了吸收数组的索引,temp内存的是数值
for _, temp := range myarray1 {
fmt.Println(temp)
}
②一般的遍历方式
var a = [3]string{"我叫小谬", "缪", "哥"}
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
(1)增(增删改查比较简单就不全上代码了)
对数组进行添加数据,一般将数组添加到末尾,采用直接赋值的方式
(2)删
删除数组内的东西一般是将被删除元素后面的元素依次向前赋值将原来的数据覆盖掉
删除掉数组内数值为3的数据
myarray := [7]int{1, 6, 3, 7, 4, 2, 5}
for k, v := range myarray {
if v == 3 {
for i := k; i < len(myarray)-1; i++ {
//使用后面的数据对其进行覆盖
myarray[i] = myarray[i+1]
}
//将末尾数据赋为初始值
myarray[len(myarray)-1] = 0
}
}
(3)改
修改数据的话,找到要修改的数据,直接拿新的数据对其进行覆盖
将数组内的3修改为10
myarray := [7]int{1, 6, 3, 7, 4, 2, 5}
for k, v := range myarray {
if v == 3 {
myarray[k]=10
}
}
(4)查
采用下标直接将需要的数据拿出来
(四)数组作为参数
一定要区分Go语言中的数组与切片,切片最明显的特征是不用指定大小,可以自动进行扩容(后面会详细介绍)
一、直接将数组转换为切片参数传进去
二、设置一个等长的数组作为参数(长度不匹配编译报错)
//两种传参方式
package main
import "fmt"
//这个参数实际上是一个切片
func p(a []int) {
fmt.Println(a)
}
//这个参数是一个数组
func p1(a [7]int) {
fmt.Println(a)
}
func main() {
//声明一个一维数组并进行初始化
myarray := [7]int{1, 6, 3, 7, 4, 2, 5}
//通过传参打印数组内的东西
//这种切片传参的方式,传进的参数也必须是切片
p(myarray[:])
//这种传参方式直接将数组名传进去
p1(myarray)
}
GO GO GO !
相关文章
- Go语言数据类型
- 我的Go+语言初体验——Python开发者轻松上手
- 当红开发语言Go,真的是未来的技术主流吗?
- 一文搞懂Go语言互斥锁、读写锁【线程安全】
- Go 语言的切片与内存复制 memcpy 的实现方法
- go工具链
- Calling C++ Code From Go With SWIG
- go代理
- go语言读写文件
- 0139-Go-临时文件
- ADS的go to命令
- Golang:go-version一个对语义化版本进行解析、比较的库
- notepad++ 安装go插件
- 深入理解Go语言(07):内存分配原理
- Golang基础(6):go的net/http用法
- 【编程实践】用 go 语言实现一个SQL DSL
- Go语言之Gin框架,ShouldBind参数。用户输入用户名、密码,后台取到值后返回OK
- Go语言之Gin框架,渲染多个模板引用HTML,请求不同的url,返回不同的HTML
- 使用Go语言开发生成阿里云ECS监控报表,定时自动发送邮件给指定人员
- GO语言之匿名函数
- GO语言之函数
- Ubuntu16.04下搭建Go语言环境
- 雪崩利器 hystrix-go 源码分析
- 详解go语言的array和slice 【二】
- Go 语言编程规范
- GO_07:GO语言基础之method
- note: module requires Go 1.19
- 五大理由从Python转到Go语言
- go进程管理工具Pmon2实践
- 用go语言撸一个简易版的区块链
- GO语言Windows下Liteide
- Go 语言入门很简单:Go 实现简易Web应用
- Go语言超全详解(入门级)