Go语言自学系列 | golang数组
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客
数组是相同数据类型的一组数据的集合,数组一旦定义长度不能修改,数组可以通过下标(或者叫索引)来访问元素。
go语言数组的定义
数组定义的语法如下:
var variable_name [SIZE] variable_type
variable_name:数组名称
SIZE:数组长度,必须是常量
variable_type:数组保存元素的类型
实例
package mainimport "fmt"func main() {var a [3]int // 定义一个int类型的数组a,长度是3var s [2]string // 定义一个字符串类型的数组s,长度是2fmt.Printf("a: %T\n", a)fmt.Printf("s: %T\n", s)
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
a: [3]int
s: [2]string
从上面运行结果,我们可以看出,数组和长度和元素类型共同组成了数组的类型。
go语言数组的初始化
初始化,就是给数组的元素赋值,没有初始化的数组,默认元素值都是零值,布尔类型是false,字符串是空字符串。
没有初始化的数组
实例
package mainimport "fmt"func main() {var a [3]int // 定义一个int类型的数组a,长度是3var s [2]string // 定义一个字符串类型的数组s,长度是2var b [2]boolfmt.Printf("a: %v\n", a)fmt.Printf("s: %v\n", s)fmt.Printf("b: %v\n", b)
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
a: [0 0 0]
s: [ ]
b: [false false]
使用初始化列表
实例
package mainimport "fmt"func main() {var a = [3]int{1, 2, 3}var s = [2]string{"tom", "kite"}var b = [2]bool{true, false}a1 := [2]int{1, 2} // 类型推断fmt.Printf("a: %v\n", a)fmt.Printf("s: %v\n", s)fmt.Printf("b: %v\n", b)fmt.Printf("a1: %v\n", a1)
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
a: [1 2 3]
s: [tom kite]
b: [true false]
a1: [1 2]
使用初始化列表,就是将值写在大括号里面。
省略数组长度
数组长度可以省略,使用...代替,更加初始化值得数量自动推断,例如:
package mainimport "fmt"func main() {var a = [...]int{1, 2, 3}var s = [...]string{"tom", "kite"}var b = [...]bool{true, false}a1 := [...]int{1, 2} // 类型推断fmt.Printf("a: %v\n", a)fmt.Printf("s: %v\n", s)fmt.Printf("b: %v\n", b)fmt.Printf("a1: %v\n", a1)
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
a: [1 2 3]
s: [tom kite]
b: [true false]
a1: [1 2]
指定索引值的方式来初始化
可以通过指定索引的方式来初始化,未指定索引的默认为零值。
实例
package mainimport "fmt"func main() {var a = [...]int{0: 1, 2: 2}var s = [...]string{1: "tom", 2: "kite"}var b = [...]bool{2: true, 5: false}a1 := [...]int{1, 2} // 类型推断fmt.Printf("a: %v\n", a)fmt.Printf("s: %v\n", s)fmt.Printf("b: %v\n", b)fmt.Printf("a1: %v\n", a1)
}
运行结果
[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
a: [1 0 2]
s: [ tom kite]
b: [false false true false false false]
a1: [1 2]
Go语言自学系列 | golang数组相关推荐
- Go语言自学系列 | golang标准库bufio
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang切片的初始化
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang for range循环
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang中的if语句
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang开发工具
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang标准库os模块 - File文件读操作
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang函数的参数
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang函数的返回值
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- Go语言自学系列 | golang switch语句
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
最新文章
- 面向对象八大设计原则
- MAP Protocol 协议(1)初步介绍
- 傅里叶变换的初级理解二
- 判断两个对象是否相等java_判断两个对象的内容是否相等
- android notification 的总结分析
- 全面解码美妆消费者心智
- DedeCMS更新文章同步发布到新浪微博
- 蒟蒻的WA之路——二分法学习
- VirtualBox和Docker安装
- 你的广告语,为什么用户记不住?
- 拥有10年编程经验的你,为什么还一直停留在原地
- 10项最佳在线免费学习工具
- 苹果截屏快捷键_苹果12将在10月上市,介绍下苹果手机便捷的实用技巧,
- oppo三面面经,现已拿到offer。十月份我快乐了,你呢?
- MITRE ATTCK框架
- Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)
- 导入虚拟电脑 C:\Users\Bob Lee\Downloads\BitcrazeVM_2022.05.ova失败. 返回 代码: E_INVALIDARG (0x80070057)
- ECharts自定义toolbox中增加自定义按钮
- 中国企业SaaS产业的四大杠杆
- python里乘号是什么意思_python 乘号