golang 空指针
来源:互联网 发布:遗传算法图像分割 编辑:程序博客网 时间:2024/05/23 18:42
前面用用习惯了golang的自动初始化的功能,所以编程的时候会直接声明指针,直接拿来用的情况,就像下面的情况
type N struct {Name string `json:"name"`Data UpdateCommentRequestData `json:"data"`}func main() {var name *Nname.Name = "bobobobob"}一运行就报错了
panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x10af53d]goroutine 1 [running]:main.main()
其实这个很容易理解,因为name这个指针变量只是声明了,并没有产生所谓的地址指向,也就是说他的地址是nil,为空的,所以当使用name.Name的时候,就报上面的错了!
但是如果使用var name N
就不会有这个空指针的错误,这是由于在声明普通变量,非指针变量的时候,golang会进行初始化,并分配一个地址,所以改成上面的就不会报错,所以在使用指针变量的时候,要确保这个指针是有地址指向的!
阅读全文
1 0
- golang 空指针
- GOLANG空指针崩溃时堆栈消失和解决方案
- golang指针
- golang指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- 空指针
- “Kotlin in Action”读书笔记
- netlink详解
- 湖南省第六届大学生计算机程序设计竞赛 战场的数目
- 算法<Next Permutation问题>
- 1056. Mice and Rice (25)
- golang 空指针
- 性能分析、调优的概念及手段
- 基于Docker、Jenkins和Saltstack的持续部署方案
- 2.4 linux存储管理-越界访问
- hive简介
- bzoj2565manacher算法
- Flutter学习之旅(三)----Flutter常见问题FAQ,看完之后不再是Flutter小白
- CGI --fastCGI
- PHP中==和===的区别在哪?