Go语言指针与切片基础入门
111 浏览量
更新于2024-08-28
收藏 36KB PDF 举报
在Go语言的学习总结中,我们深入探讨了三个关键概念:指针、切片以及它们在程序中的应用。
1. **指针**:
- 指针是Go语言中非常重要的概念,它是一个变量,保存了一个值的内存地址。在Go中,类型`*T`代表指向`T`类型值的指针,其中`nil`是所有指针类型的初始值,表示空或未分配的内存。
- `&`操作符用于获取一个变量的地址,返回一个指向该变量的指针。例如,在`p := &i`中,`p`指向变量`i`的内存地址。
- `*`操作符用于访问指针所指向的值。在`fmt.Println(*p)`中,我们实际上是打印了变量`i`的当前值,而在`*p = 21`这行,我们通过指针改变了`i`的值。
- 示例代码展示了如何使用指针对变量进行读取和修改,以及指针地址的表示。
2. **切片**:
- 切片在Go中是一种特殊的引用,它并不存储实际的数据,而是存储了一个指向底层数据结构(如数组)的指针,以及两个索引(开始和结束索引),定义了引用的数据范围。切片不复制数据,所以更改切片的元素会直接反映在底层数据上。
- 在`names`的例子中,我们创建了两个切片`a`和`b`,分别引用了原数组的不同部分。当我们在`b`中修改元素时,`a`也受到影响,体现了切片的共享特性。
- Go提供了多种方式来创建切片,包括基于数组的切片(如`s1 := s[1:4]`)、全量复制的切片(如`s2 := s[:2]`)以及从现有切片开始的切片(如`s3 := s[1:]`)。
Go语言的指针和切片是两种强大的工具,它们有助于优化内存管理,提高代码的效率和灵活性。掌握指针可以让你更深入地理解程序的内存布局,而理解切片的工作原理则有助于编写更高效和易维护的代码。通过这两个概念,程序员可以更好地处理数组和其他数据结构,并在Go的并发编程中发挥重要作用。
2293 浏览量
301 浏览量
547 浏览量
151 浏览量
2024-10-09 上传
2022-10-04 上传
254 浏览量
weixin_38657465
- 粉丝: 7
- 资源: 948
最新资源
- CSharp Language Specification 3.0 CN.doc
- Thinking in C++ 2nd edition Volume 2: Standard Libraries & Advanced Topics
- 网站制作项目的报价参考格式。
- Thinking in C++, Volume 1, 2nd Edition
- 实用最优化的搜索算法
- 第二章信息系统的开发.ppt(我整理的教学课件)
- LoadRunnerManual 帮助文件
- JAVA新手须知的常识
- ModalMaker中文手册
- 串口通讯各种编程大全
- [eBook] A Guide to MATLAB for Beginners and Experienced Users - B.R.Hunt,R.L.Lipsman,J.M.Rosenberg - (Cambridge University Press)
- 数据结构(内容很全很容易学习的一本书)
- GWT学习笔记,个人学习心得
- Linux内核模块和驱动的编写
- windows-powershell-in-action
- JSF标签全解释 `