【GoLang】切片的面试知识点

nil切片 和 空切片

nil切片是只声明但未初始化,没有分配底层数组的内存空间,

空切片是初始化了的,有分配数组内存,只是数组内没有元素。

二者都可以正常扩容、遍历。不会报错。

append 如何添加切片

append 可以增加切片,通过在切片后面加上...,就可以进行添加。

如何比较两个切片是否相等,判断依据是什么

判断依据:1. 切片长度; 2. 切片指向数组的所有元素

只要两个切片的长度相等并且指向数组内所有元素及顺序都相等,那么两个切片就相等。两个数组可以不是同一个数组。

判断函数:

  1. reflect.DeepEqual()

  2. 自定义函数

使用[a:b]对切片进行截取

使用[a:b]对切片进行截取得到的新切片,新切片的长度是b-a ,容量是底层数组长度-a。新切片与旧切片共用一个底层数组

相关推荐
绝无仅有7 分钟前
mysql性能优化实战与总结
后端·面试·github
ByteBlossom31 分钟前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
Cyan_RA937 分钟前
计算机网络面试题 — TCP连接如何确保可靠性?
前端·后端·面试
uhakadotcom42 分钟前
Rollup 从0到1:TypeScript打包完全指南
前端·javascript·面试
南北是北北1 小时前
详解flowOn 与背压
面试
南北是北北1 小时前
让转换并发起来的两个核心手段:flatMapMerge(concurrency = N)和channelFlow { ... }
面试
9号达人1 小时前
Java 14 新特性详解与实践
java·后端·面试
元亓亓亓2 小时前
LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
算法·leetcode·职场和发展
测试老哥2 小时前
Selenium 使用指南
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
青鱼入云3 小时前
【面试场景题】支付&金融系统与普通业务系统的一些技术和架构上的区别
面试·金融·架构