go学习笔记之指针
什么是指针
一个变量,指向了另外一个变量的内存地址。
指针变量通常用于引用其他变量的内存地址,以便能够直接访问或修改该变量的值。
指针用法
*
声明变量类型为指针;或者使用指针访问变量的值&
指针指向的内存地址, 也是将一个普通变量赋值给一个指针变量的方式
1 | package main |
什么时候适合用指针
- 如果需要修改外部变量的值,我们需要使用指针
- 不需要对map,slice等引用类型使用指针,因为他们本身就是一个指针
- 如果有超级大的结构体需要作为函数的参数,使用指针可以节省内存开销
- 因为指针可以修改其指向数据的值,所以最好不要随意在并发场景下使用
- 最好不要嵌套使用指针,比如b := &a, c := &b,这样代码会比较复杂难懂
- 对于一些特殊场景,比如接口传参,假如参数类型是布尔类型,因为go中变量必定会存在一个默认值,对于布尔类型是false, 如果不想有默认值,可以将这个参数设置为布尔类型的指针
总结
- 指针也是变量,只不过存储的是地址
- 通过指针可以去修改其指向数据的值
- 指针可以帮助我们在任何地方修改其所指向数据的值
- 传递指针参数可以节省拷贝大结构体的内存开销
评论