zoukankan      html  css  js  c++  java
  • golang make()的第三个参数

    golang分配内存有一个make函数,该函数第一个参数是类型,第二个参数是分配的空间,第三个参数是预留分配空间,前两个参数都很好理解,
    对于第三个参数,例如a:=make([]int, 5, 10), len(a)输出结果是5,cap(a)输出结果是10,对a[4]进行赋值发现是可以得,
    但对a[5]进行赋值发现报错了,那么这个预留分配的空间要怎么使用呢?预留的空间需要重新切片才可以使用。
    
    package main
     
    import "fmt"
     
    func main(){
    	a := make([]int, 10, 20)
    	fmt.Printf("%d, %d
    ", len(a), cap(a))
    	fmt.Println(a)
    	b := a[:cap(a)]
    	fmt.Println(b)
    }
    
    10, 20
    [0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    
  • 相关阅读:
    顺序容器
    forward_list
    array
    第十一章 关联容器
    C++数组
    C++标准库算法
    第十章 泛型算法
    第九章 顺序容器
    操作系统概述
    文件输入输出
  • 原文地址:https://www.cnblogs.com/nyist-xsk/p/9817080.html
Copyright © 2011-2022 走看看