当前位置: 首页 > news >正文

定制商品的网站建设各类软件代理加盟

定制商品的网站建设,各类软件代理加盟,云南做企业建站,网站根目录slice包含3个部分: 1.内存的起始位置 2.切片的大小(已经存放的元素数量) 3.容量(可以存放的元素数量) 使用make初始化切片会开辟底层内存,并初始化元素值为默认值,如数字为0,字符串为空 使用New初始化切片不会开辟底层数组&…

slice包含3个部分:
1.内存的起始位置
2.切片的大小(已经存放的元素数量)
3.容量(可以存放的元素数量)

使用make初始化切片会开辟底层内存,并初始化元素值为默认值,如数字为0,字符串为空

使用New初始化切片不会开辟底层数组,而且返回的是指向类型的指针

不同的切片可以公用底层数组,如

arr := []int{1, 2, 3, 4, 5, 6, 7, 8}arr1 := arr[1:5]

这里arr1是从数组下标1~4的引用(左闭右开),它的大小为4,容量到底层数组的结尾,即7。
当arr或arr1修改元素的时候,底层数组受影响,同时作用于两个arr和arr1两个变量。
又或者arr1使用append添加元素的时候,由于切片的容量为7,所以会直接在底层数组上覆盖原本的元素。但是如果append操作需要扩容的时候,并不会在原有的底层数组上直接往后加元素,而是复制出来一份到新的内存上,所以不会影响原底层数组。

扩容规则:
1.预估元素个数
如果扩容前的容量翻倍依旧不能满足所需,则直接扩容到所需的容量。
否则,如果元素个数<1024则直接翻倍,如果>=1024则扩容1.25倍。
否则,先判断元素个数<256则直接翻倍,如果大于等于256会根据const threshold = 256;newcap += (newcap + 3*threshold ) / 4这个公式进行容量预估。如果不能满足所需容量则再次根据此公式循环。相比与之前的1.25倍的容量扩容,这个公式提供了一个过度曲线,小切片更趋向于2倍,大切片更趋向于1.25倍。
2.实际分配内存
程序申请内存并不是需要多少就直接能拿到多少,而是从操作系统中拿到满足所需容量的最小内存。比如程序会预先从操作系统中申请16,32,48等等不同规格的内存,然后在根据所需容量占据的内存拿到最合适的内存。

例子:
[]int数组{1,2},在执行append时arr = append(arr, 3, 4, 5),根据1,判断需要的容量为5,64位系统下一个int占64位,即8字节。预估需要的内存为5*8=40字节。但是程序分配内存不会直接分配40字节的内存,而是找到满足条件的最小规格内存48字节。48字节可以容纳的元素个数位48/8=6,所以上述实append操作实际上扩容后的容量为6。

http://www.yayakq.cn/news/331919/

相关文章:

  • 怎么用frontpage做网站网络平台制作软件教程
  • 用php做网站需要什么wordpress 管理菜单
  • 为企业为什么做网站做钓鱼网站教程
  • 网站建设公司财务预算凡科互动投票破解
  • 办个网站需要多少钱曹县 做网站的公司
  • 网络课程网站模板室内设计师之路网站
  • 三合一网站建设什么意思乐享黔程是什么公司
  • seo网站页面优化遵化网站建设
  • 网站建设好后怎么制作网页在哪个网站注册域名
  • 哪个网站可以用来做读书笔记用什么软件搭建网站源码
  • 网站建站模板网站建设优化服务资讯
  • 成都设计公司推荐温州网站优化关键词
  • 南通网站排名公司中国房地产100强名单
  • 大竹网站建设微博推广的好处
  • 广州网站设计开发技术开发公司官网
  • 中企动力网站建设公司如何通过国外社交网站做外销
  • 公司自己做网站多少费用网页设计公司创业计划书
  • 招聘网站是怎么做推广安阳网站建设哪里最好
  • 开发个网站开票名称是什么宝塔面板加wordpress建站
  • 如何用个门户网站做销售天工网工程信息网官网
  • 网站建设工作流程htmlyp77731域名查询
  • 北京怀柔做网站管理运营的公司做网站网站违法吗
  • 哪里有网站建设流程做那种网站受欢迎
  • 文库类网站建设建议及经验网站开发和软件开发区别
  • 个人网站免费制作网页设计实训报告总结与收获
  • 网站建设实现用户登录wordpress主题图片丢失
  • ai做的比较好的网站wordpress关闭注册激活邮件
  • 深圳网站建设有哪些公司网站搭建中页面
  • 石家庄电商网站云南电商网站建设
  • 网站推广注册网站做支付要多少钱