显示优于隐式
map类型: make(map[int]int),再没有声明长度的情况下,是可以执行的。
slice类型: make([]int),在没有生命长度的情况下,则是不可以执行的。
因为分配的数据结构底层逻辑不同,map是作为hash结构,支持动态扩展,有懒加载的逻辑支撑。
而slice,功能上属于去掉了长度限制的数组,为了支持顺序存储和索引快查,在这种逻辑下,slice需要显示声明它的容量,同时为了提升编译器的效率(slice作为高频使用数据类型)。

而且显示和隐式最大的区别,按我个人来看:就是你能知道多少。作为一个工程师而言,其实我还是想知道很多的,我不认为make([]int, 0)和make([]int)对个人的工作效率,提升有多少。
但相反的是,正是这种区别,才会让我深入map、slice的真正区别。
对于扩展知识方面,比较有帮助。

posted on 2024-11-09 11:33  黑熊一只  阅读(1)  评论(0编辑  收藏  举报