语法格式

make([]int, length, capacity)

参数解释

  • 第一个参数 4:长度(length) - 切片的初始长度,即切片中实际包含的元素个数
  • 第二个参数 5:容量(capacity) - 底层数组的总容量,即在不重新分配内存的情况下,切片可以增长到的最大长度

具体例子

dst1 := make([]int, 4, 5)
// 结果:dst1 = [0, 0, 0, 0]
// len(dst1) = 4
// cap(dst1) = 5

内存布局

底层数组:[0, 0, 0, 0, 0]  (容量为5)
切片引用:[0, 0, 0, 0] (长度为4)

为什么这样设计?

1.长度(4):决定了切片当前有多少个元素

2.容量(5):为未来的 append 操作预留空间,避免频繁的内存重新分配

实际效果

dst1 := make([]int, 4, 5)
fmt.Println(len(dst1)) // 输出:4
fmt.Println(cap(dst1)) // 输出:5 // 可以追加一个元素而不重新分配内存
dst1 = append(dst1, 10)
fmt.Println(len(dst1)) // 输出:5
fmt.Println(cap(dst1)) // 输出:5 (容量不变) // 再追加一个元素,需要重新分配内存
dst1 = append(dst1, 20)
fmt.Println(cap(dst1)) // 输出:10 (容量翻倍)

总结: 4是当前长度,5是总容量,为性能优化预留了空间。

go学习笔记:dst1 := make([]int, 4, 5) 中的 4,5 是什么意思的更多相关文章

  1. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  2. Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

    f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...

  3. 【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法

    之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...

  4. [C#学习笔记3]关于Main(string[ ] args)中args命令行参数

    Main(string[] args)方法是C#程序的入口,程序从这里开始执行,在这里结束.C#代码逻辑要包含在一个类型(Type)中,游离的.全局的变量或函数是不存在的,这里的类型包括类(class ...

  5. JNI学习笔记_Java调用C —— 非Android中使用的方法

    一.学习笔记 1.java源码中的JNI函数本机方法声明必须使用native修饰. 2.相对反编译 Java 的 class 字节码文件来说,反汇编.so动态库来分析程序的逻辑要复杂得多,为了应用的安 ...

  6. Objective-C学习笔记之for( int )机制

    NSArray *myArray = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4&q ...

  7. [Android学习笔记]枚举与int的转换

    package com.example.enumdemo; import android.app.Activity; import android.os.Bundle; import android. ...

  8. Java学习笔记(七)——获取类中方法的信息,java的LinkedList

    [前面的话] 在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货. 学习过程中的小知识 ...

  9. PE结构学习笔记--关于AddressOfEntryPoint位置在文件中怎么确定问题

    第一次学习PE结构,也不知道有没有更好的办法. 1.AddressOfEntryPoint 这个成员在OptionalHeader里面,OptionalHeader的类型是一个IMAGE_OPTION ...

  10. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

随机推荐

  1. RPC:设计可扩展且向后兼容的协议

    协议:怎么设计可扩展且向后兼容的协议? 浏览器收到命令后会封装一个请求,并把请求发送到 DNS 解析出来的 IP 上,通过抓包工具我们可以抓到请求的数据包,如下图所示: 协议的作用 RPC 请求在发送 ...

  2. WPF 用 DrawingBrush实现图形的平铺

    WPF平铺图像,一般用到 DrawingBrush 来实现对图形.图形的平铺,查阅了 微软官方文档的 DrawingBrush  属性 创建一个 DrawingBrush,其中: TileMode=& ...

  3. 题解:AT_cf16_exhibition_final_e Water Distribution

    题目链接:link. 这道题目我们有 \(3\) 个结论: 在最优情况下,最后所有的点上的水量都是一样的.因为水多的可以向水少的运水. 不存在间接运水的情况,这个由三角形的三边关系可以得到. 最优运输 ...

  4. DeepSeek LLM

    作者前言: DeepSeek系列现在非常火,笔者决定主要梳理DeepSeekzui最重要的四代版本: DeepSeek-LLM; DeepSeekMath; DeepSeek-V2; DeepSeek ...

  5. Free Mybatis Tool插件

    Free Mybatis plugin Free Mybatis Tool 老规矩先吹一波......这个idea里面的插件真的十分nice,上个图让你们知道他的优秀.直接在idea插件搜索就可以安装 ...

  6. AI大模型应用开发入门-LangChain开发RAG增强检索生成

    检索增强生成(RAG)是一种结合"向量检索"与"大语言模型"的技术路线,能在问答.摘要.文档分析等场景中大幅提升准确性与上下文利用率. 本文将基于 LangCh ...

  7. HTTP POST方式调用SOAP OPERATION类的接口

    wsdl地址或者接口地址中有多个方法(operation) 如下是soapui测试的例子,wsdl地址下包含多个operation,但是现在我想用http的方式,只做getKnowledgeParts ...

  8. Vertx 实现webapi实战项目(五)

    添加测试handler 一:定义上传json,注意,mId是必须的. 1 { 2 "mId": 101, 3 "name":"cddd", ...

  9. Ubuntu云服务器上部署发布Vite项目

    1 拷贝代码 一般来说是Windows环境下开发,Ubuntu环境下部署.因此首先要考虑的问题是如何将Vite项目的源代码拷贝到云服务器上面去.最简单的就是使用像MobaXterm这样的远程连接工具, ...

  10. SqlServer查看某个表的索引详细信息

    SELECT TableId=O.[object_id], TableName=O.Name, IndexId=ISNULL(KC.[object_id],IDX.index_id), IndexNa ...