显示优于隐式
map类型: make(map[int]int),再没有声明长度的情况下,是可以执行的。
slice类型: make([]int),在没有生命长度的情况下,则是不可以执行的。
因为分配的数据结构底层逻辑不同,map是作为hash结构,支持动态扩展,有懒加载的逻辑支撑。
而slice,功能上属于去掉了长度限制的数组,为了支持顺序存储和索引快查,在这种逻辑下,slice需要显示声明它的容量,同时为了提升编译器的效率(slice作为高频使用数据类型)。
而且显示和隐式最大的区别,按我个人来看:就是你能知道多少。作为一个工程师而言,其实我还是想知道很多的,我不认为make([]int, 0)和make([]int)对个人的工作效率,提升有多少。
但相反的是,正是这种区别,才会让我深入map、slice的真正区别。
对于扩展知识方面,比较有帮助。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-11-09 kill信号量详解