[golang]nil slice和empty slice的区别
生活随笔
收集整理的這篇文章主要介紹了
[golang]nil slice和empty slice的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在開發的時候,會遇到對于nil slice和empty slice的問題,往往在聲明了slice之后,在使用的時候卻出現了問題。
問題
以下是錯誤的用法,會報數組越界的錯誤,因為只是聲明了slice,卻沒有給實例化的對象,這一點如果是cpp的vector,便可以直接使用,但是golang 不行。
var slice []int slice[1] = 0此時slice的值是nil,這種情況可以用于需要返回slice的函數,當函數出現異常的時候,保證函數依然會有nil的返回值。
empty slice 是指slice不為nil,但是slice沒有值,slice的底層的空間是空的,此時的定義如下:
slice := make([]int,0)//或者 slice := []int{}當我們查詢或者處理一個空的列表的時候,這非常有用,它會告訴我們返回的是一個列表,但是列表內沒有任何值。
總之,nil slice 和 empty slice是不同的東西,在編程的需要加以區分。
總結
以上是生活随笔為你收集整理的[golang]nil slice和empty slice的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf什么时候大更新
- 下一篇: 博客搬迁声明