2023-05-31
要檢查切片是否為空,需始終使用
len(s) == 0
來判斷,而不應該使用
s == nil
來判斷,
切片之間是不能比較的,我們不能使用==運算子來判斷兩個切片是否含有全部相等元素, 切片唯一合法的比較操作是和nil比較, 一個nil值的切片并沒有底層陣列,一個nil值的切片的長度和容量都是0,但是我們不能說一個長度和容量都是0的切片一定是nil,例如下面的示例:
var s1 []int //len(s1)=0;cap(s1)=0;s1==nil s2 := []int{} //len(s2)=0;cap(s2)=0;s2!=nil s3 := make([]int, 0) //len(s3)=0;cap(s3)=0;s3!=nil
所以要判斷一個切片是否是空的,要是用len(s) == 0來判斷,不應該使用s == nil來判斷,其根本原因在于后面兩種初始化方式已經給切片分配了空間,所以就算切片為空,其與nil也并不相等,而len(s) == 0成立,則切片一定為空,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/553951.html
標籤:其他
上一篇:別再滿屏找日志了!推薦一款 IDEA 日志管理插件,看日志輕松多了!
下一篇:返回列表
