GO起步-数组

简介: 主要记录下go的数组定义、数组切片等go数组相关的知识

数组

主要定义方式为:数组名称 [n]  T (类型)表示拥有N个T类型的数组如:

var a [10]int 
#将变量a声明为拥有10个整数的数组,数组是不可变的,定义后其大小不能改变。
fmt.Println(a)
#打印: [0 0 0 0 0 0 0 0 0 0]
var b[5]int={1,2,3,4,5}
fmt.Println(b)

数组初始化:

# 方法一:
var a=[5]int{1,2,3,4,5}
# 方法二:通过自变量在声明数组的同时快速初始化数组
b:= [5]int{2,3,4,5,6}
数组长度不确定可以用...代替数组的长度,编译器会根据元素个数自动推断数组的长度:
var a =[...]int{2,3,4,5,6}
b:=[...]float32{1.0,2,3.5}
#另外一种定义方式:将索引为1和7的元素初始化,
这里用用...代替数组的长度,编译器自动推断数组长度
d:=[...]int{1:5,7:6}

多维数组

var c[3][5] int 
for i:=0;i<3;i++{
   for j:=0;j<5;j++{
      c[i][j]=i*j
   }
}


数组的访问

a:=[5]int{1,2,3,4,5}
for i:=0;i<5;i++{
  fmt.println(i)
}

数组的切片操作

a:=[...]int{1,3,4,6,7}
b:=a[1:3]
fmt.Println(b) #  a[1]和a[2]
# 结果打印[3 4]  
c:=a[:4] #a[0]到a[3]不包括a[4]
fmt.Println(c)
结果打印:[1,3,4,6]
d:=a[2:] 从a[2]到a[4] 
fmt.Println(d)
结果打印 [4,6,7]

数组切片是共享内存的,这里不会存在数据复制,实际上切片赋予的变量只是记录了从哪里切到哪里


补充

短变量声明::= 可在类型明确的地方代替var声明。

比如x:=10 等价于var x int=10



参考信息:

https://coolshell.cn/articles/8460.html#%E6%95%B0%E7%BB%84

https://www.runoob.com/go/go-arrays.html

http://tour.studygolang.com/basics/10

目录
打赏
0
0
0
0
8
分享
相关文章
|
1月前
|
Go
【LeetCode 热题100】DP 实战进阶:最长递增子序列、乘积最大子数组、分割等和子集(力扣300 / 152/ 416 )(Go语言版)
本文深入解析三道经典的动态规划问题:**最长递增子序列(LIS)**、**乘积最大子数组** 和 **分割等和子集**。 - **300. LIS** 通过 `dp[i]` 表示以第 `i` 个元素结尾的最长递增子序列长度,支持 O(n²) 动态规划与 O(n log n) 的二分优化。 - **152. 乘积最大子数组** 利用正负数特性,同时维护最大值与最小值的状态转移方程。 - **416. 分割等和子集** 转化为 0-1 背包问题,通过布尔型 DP 实现子集和判断。 总结对比了三题的状态定义与解法技巧,并延伸至相关变种问题,助你掌握动态规划的核心思想与灵活应用!
83 1
Go语言数组的定义与操作 - 《Go语言实战指南》
本文介绍了 Go 语言中的数组(Array)相关知识,包括定义、初始化方式(默认、显式、指定索引及自动推导长度)、访问与修改、遍历方法(for 循环和 for range)、值类型特性(复制行为)、多维数组支持以及其与切片的区别。数组是定长且同类型的集合,适合性能敏感场景,但实际开发中更常用动态的切片(slice)。
|
7月前
|
go语言中数组和切片
go语言中数组和切片
127 7
Go语言中的数组
在 Go 语言中,数组是一种固定长度的、相同类型元素的序列。数组声明时长度已确定,不可改变,支持多种初始化方式,如使用 `var` 关键字、短变量声明、省略号 `...` 推断长度等。数组内存布局连续,可通过索引高效访问。遍历数组常用 `for` 循环和 `range` 关键字。
107 6
|
7月前
|
go语言中的数组(Array)
go语言中的数组(Array)
167 67
go语言使用切片而非数组
【10月更文挑战第18天】
56 1
Go to Learn Go之数组
Go to Learn Go之数组
60 0
Go数组、多维数组和切片(动态数组),及常用函数len(),cap(),copy(),append()在切片中的使用
本文介绍了Go语言中数组、多维数组和切片(动态数组)的基本概念和操作,包括数组的定义、初始化、访问,多维数组的定义和访问,以及切片的创建、使用和扩容。同时,还讲解了切片中常用的函数len()、cap()、copy()和append()的使用方法。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问