• 【Golang基础总结】数组和切片的比较


    1、容量是否可伸缩。数组的容量不可伸缩,切片的容量可以伸缩。

    2、是否可以进行比较。数组对于相同类型相同维度相同长度是可以比较的,而切片只能跟nil进行比较。

    3、作为函数参数时,数组一般传入指向数组的指针,但是可以将切片作为参数传入函数,不是说数组不能作为入参,只是为了节省开销。

    在函数间传递数组是一个开销很大的操作。在函数之间传递变量时,总是以值的方式传递的。如果整个变量是一个数组,意味着整个数组,不管有多长,都会完整复制,并传递给函数。所以一个更好且更有效的方法是可以只传入指向数组的指针,这样只需要复制8个字节的数据。

    在64位架构的机器上,一个切片需要24字节的内存:指针字段需要8字节,长度和容量字段分别需要8字节。由于与切片关联的数据包含在底层数组里,不属于切片本身,所以将切片复制到任意函数的时候,对底层数组大小都不会影响。复制时只会复制切片本身,不会涉及底层数组。

  • 相关阅读:
    webpack简介与使用
    webpack使用小记
    H5常用技巧
    mac 终端 常用命令
    vue.js学习资料
    git clean(转载)
    HTML5 移动端的上下左右滑动问题
    HTML5+CSS3 loading 效果收集--转载
    使用Chrome DevTools的Timeline分析页面性能
    phantomjs 是什么?----主要是mac下面
  • 原文地址:https://www.cnblogs.com/LydiammZuo/p/11877289.html
Copyright © 2020-2023  润新知