GO基础笔记

本文深入探讨了指针的概念,包括指针变量、解引用以及空指针和野指针的区别。阐述了栈帧在函数调用中的作用,详细介绍了栈帧中存储的内容。此外,讨论了切片在数组管理和函数参数传递中的优势,揭示了切片的本质。同时,讲解了Map的创建和操作,以及在Go语言中的格式化输出。通过对变量存储和指针函数传参的解析,强调了值传递与引用传递的差异。最后,提到了切片和Map在实际编程中的应用场景和操作方法。
摘要由CSDN通过智能技术生成

指针:
指针就是地址,指针变量就是存储地址的变量
*p: 解引用,间接引用
栈帧:用来给函数运行提供内存空间,取内存与stack上
当函数调用时,产生栈帧,函数调用结束,释放栈帧
栈帧存储:1 局部变量,2 形参,3内存字段描述值
指针使用注意:
空指针:未被初始化的指针 var p *int
野指针:被一片无效地址空间初始化
格式化输出:
%q 以Go语言格式显示字符串,默认带""符
%v 显示对应数据详细信息
变量存储
等号左侧变量代表变量所指向的内存空间
等号右侧变量代表变量内存空间存储的数据值
指针函数传参(传引用)
传地址将星灿的地址值作为函数参数传递
传值将实参的值拷贝一份给形参
传引用再栈帧内部修改另一个栈帧的变量值
切片:
为什么切片:
数组的容量固定,不能自动扩展
值传递,数组作为函数参数时,将整个数组值拷贝一份给形参
几乎可以在所有场景中使用切片提单数组
切片本质:不是一个数组的指针,是一种结构体,用来操作数组内部元素
操作:
append, copy

Map:
创建:var m map[int]string
m := map[int]string{}
m := make(map[int]string}
m := make(map[int]string, 1)
操作:
添加: m[key] = val
删除: delete(m, key)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值