
Golang编程:深入理解array、slice与map
64KB |
更新于2024-09-02
| 54 浏览量 | 举报
收藏
"Golang学习笔记(四):array、slice、map"
在Golang中,数组、切片和映射(map)是三种非常重要的数据结构,它们各自有着不同的特性和用途。
一、Array(数组)
1. **声明与赋值**:
数组是一种固定大小的序列,其长度在声明时就必须指定。例如:
```go
var a [5]int // 定义一个长度为5的整型数组,初始值为0
var b int = [5]int{1, 2, 3, 4, 5} // 声明并初始化
a := [3]int{1, 2, 3} // 使用 := 简化声明
```
对于多维数组,可以这样定义:
```go
var doubleArray [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}} // 2x4 的二维数组
```
数组的长度是其类型的一部分,不可改变。
2. **元素访问**:
- 使用索引访问,如 `array[i]`。
- 使用 `for` 循环遍历:
```go
for i := 0; i < len(array); i++ {
fmt.Println(i, array[i])
}
```
- 或使用 `range` 遍历:
```go
for i, v := range array {
fmt.Println(i, v)
}
```
3. **数组与指针**:
数组赋值是值的复制,不是引用。如果需要传递数组的引用,应使用切片(slice)。
二、Slice(切片)
1. **创建与初始化**:
切片是对数组的引用,可以动态增长。创建方式:
```go
s := make([]int, 3) // 创建一个长度为3的空切片
s = []int{1, 2, 3} // 初始化切片
s := a[1:3] // 从数组 a 中创建切片
```
切片的长度可以通过 `len(s)` 获得,可以通过 `s = append(s, val)` 添加元素。
2. **操作与特性**:
- 切片可以动态扩展,而数组的长度是固定的。
- 切片可以共享同一个底层数组,因此对切片的修改会影响到原始数组。
- 切片可以通过索引或 `range` 遍历元素。
三、Map(映射)
1. **声明与初始化**:
映射用于存储键值对,声明方式:
```go
m := make(map[string]int) // 声明一个字符串到整型的映射
m := map[string]int{"key1": 1, "key2": 2} // 初始化映射
```
映射的键和值可以是任何可比较的类型。
2. **操作与访问**:
- 使用 `m[key]` 获取或设置映射中的值。如果键不存在,`m[key]` 返回零值。
- 使用 `delete(m, key)` 删除键值对。
- 使用 `len(m)` 获取映射中键值对的数量。
- 遍历映射需使用 `for` 循环,因为映射无顺序:
```go
for key, value := range m {
fmt.Println(key, value)
}
```
在实际编程中,根据需要选择使用数组、切片或映射。数组适用于固定大小且不需要动态调整的数据,切片则提供了灵活的数组操作,而映射则适合关联数据的存储。理解它们之间的差异和用法对于编写高效的Go程序至关重要。
相关推荐










weixin_38514523
- 粉丝: 8
最新资源
- 全面解析C语言基本函数要点
- 西北工业大学sybase数据库工程课件解析
- 深入探索Java编程的奥秘
- 用VB编写简易MP3播放器教程与代码分享
- VC开发的全能图片处理软件及其源码
- pdg文件转换工具Pizza v1.73发布
- 《数据结构习题集(c语言版)》严蔚敏答案解析
- 16位CPU基础知识介绍与结构流程解析
- TortoiseSVN-1.6.2版本发布:中文语言支持与安装指南
- Java聊天系统课程设计:实用解决方案
- 深入探讨AJAX验证码在JSP开发中的应用
- HTMLArea 3.0英文版尚未汉化问题解析
- 提升VC编程效率的神器Visual.Assist.v6
- 深入分析微软PetShop4.0的三层架构设计精髓
- 花店经营:全面的需求文档分析与设计
- QQ申请器V1.09:高效快捷的QQ账号申请工具
- 探索计算机体系结构:试题解析与考点总结
- FLASH实现数据结构算法演示
- VC实现的FTP文件单点传输程序教程
- C#实现RealPlayer文件播放方法
- JavaScript实现响应式浮动广告的设计与制作
- C#开发图书管理系统与数据库集成详解
- 常见网卡DOS驱动程序大全及使用方法
- Linux操作系统入门教程详解