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

数组和切片的区别

   💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。



非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
 

前言

小郑最近在准备Go语言的面试题,通过github和b站等各种学习网站上学习go语言的八股文,并且整理出自己觉得面试可能会问到的知识点,希望通过做笔记的方式来巩固自己的知识点,并且也希望可以帮助到大家在面试的时候更加得心应手一些,那么从现在开始,和我一起加入八股学习之旅吧!

(1) 切片的初始化与追加

1.2 写出程序运行的结果

package mainimport ("fmt"
)func main(){s := make([]int, 10)s = append(s, 1, 2, 3)fmt.Println(s)
}

考点

切片追加, make初始化均为0

结果

[0 0 0 0 0 0 0 0 0 0 1 2 3]

(2) slice拼接问题

下面是否可以编译通过?

test6.go

package mainimport "fmt"func main() {s1 := []int{1, 2, 3}s2 := []int{4, 5}s1 = append(s1, s2)fmt.Println(s1)
}

结果

编译失败

两个slice在append的时候,记住需要进行将第二个slice进行...打散再拼接。

s1 = append(s1, s2...)

(3) slice中new的使用

下面代码是否可以编译通过?

test9.go

package mainimport "fmt"func main() {list := new([]int)list = append(list, 1)fmt.Println(list)
}

结果

编译失败,./test9.go:9:15: first argument to append must be slice; have *[]int

分析

切片指针的解引用。

可以使用list:=make([]int,0) list类型为切片

或使用list = append(\list, 1) list类型为指针

(4)make和new的区别

相同点:
1)只能存储一组相同类型的数据结构
2)都是通过下标来访问,并且有容量长度,长度通过 len 获取,容量通过 cap 获取
区别:
1)数组是定长,访问和复制不能超过数组定义的长度,否则就会下标越界,切片长度和容量可以自动扩容
2)数组是值类型,切片是引用类型,每个切片都引用了一个底层数组,切片本身不能存储任何数据,都是这底层数组存储数据,所以修改切片的时候修改的是底层数组中的数据。切片一旦扩容,指向一个新的底层数组,内存地址也就随之改变

参考文献   地鼠文档

❤️❤️❤️小郑是普通学生水平,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

http://www.dtcms.com/a/181044.html

相关文章:

  • 常见问题-SQLServer中创建新数据库使用哪个中文编码?
  • 无人机电池储存与操作指南
  • LlamaIndex 第六篇 SimpleDirectoryReader
  • PostgreSQL 的 pg_advisory_lock 函数
  • Redhat 系统详解
  • Windows系统下【Celery任务队列】python使用celery 详解(二)
  • Windows 下 dll转换成lib
  • vue知识点总结 依赖注入 动态组件 异步加载
  • 【星海随笔】信息安全相关标准
  • Windows下Dify连接Ollama无效
  • 反向沙箱介绍
  • C++ —— 类的嵌套和循环依赖问题
  • KERNEL32!NlsServerInitialize函数分析创建了一个目录对象和目录对象下面的5个对象
  • 【MySQL】-- 事务
  • 华为5.7机考第一题充电桩问题Java代码实现
  • 嵌入式系统架构验证工具:AADL Inspector v1.10 全新升级
  • 优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡
  • 代码随想论图论part06冗余连接
  • 【MySQL】存储引擎 - ARCHIVE、BLACKHOLE、MERGE详解
  • 多模型协同预测在风机故障预测的应用(demo)
  • Java设计模式之抽象工厂模式:从入门到精通
  • 服务器配置错误导致SSL/TLS出现安全漏洞,如何进行排查?
  • 在自然语言处理任务中,像 BERT 这样的模型会在输入前自动加上一些特殊token
  • 从概念表达到安全验证:智能驾驶功能迎来系统性规范
  • 金仓数据库永久增量备份技术原理与操作
  • 如何清除windows 远程桌面连接的IP记录
  • 2025年5月通信科技领域周报(4.28-5.4):5G-A技术引领峰会通信 卫星通信加速全球化布局
  • Java socket获取gps定位
  • 【 Triton 教程】triton.heuristics
  • 2025 年数维杯数学建模B题完整论文代码模型