【GoLang】切片的面试知识点

nil切片 和 空切片

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

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

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

append 如何添加切片

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

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

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

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

判断函数:

  1. reflect.DeepEqual()

  2. 自定义函数

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

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

相关推荐
学历真的很重要10 分钟前
LangChain V1.0 Context Engineering(上下文工程)详细指南
人工智能·后端·学习·语言模型·面试·职场和发展·langchain
iAkuya31 分钟前
(leetcode)力扣100 36二叉树的中序遍历(迭代递归)
算法·leetcode·职场和发展
有一个好名字1 小时前
力扣-小行星碰撞
算法·leetcode·职场和发展
2301_800895101 小时前
hh的蓝桥杯每日一题--前缀和
职场和发展·蓝桥杯
2301_800895102 小时前
hh的蓝桥杯每日一题
算法·职场和发展·蓝桥杯
求梦8203 小时前
【力扣hot100题】反转链表(18)
算法·leetcode·职场和发展
NAGNIP3 小时前
机器学习特征工程中的特征选择
算法·面试
求梦8203 小时前
【力扣hot100题】移动零(1)
算法·leetcode·职场和发展
J_liaty3 小时前
RabbitMQ面试题终极指南
开发语言·后端·面试·rabbitmq
NAGNIP3 小时前
机器学习中的数据预处理方法大全!
算法·面试