DEV Community

Cover image for What is the empty or zero value for a slice in Go or Golang?
MELVIN GEORGE
MELVIN GEORGE

Posted on • Originally published at melvingeorge.me

What is the empty or zero value for a slice in Go or Golang?

#go

Originally posted here!

The empty or zero value of a slice in go or golang is nil. These slices have a capacity and a length of 0.

TL;DR

package main

import "fmt"

func main() {
    // declare an int slice
    var mySlice []int

    // check if the mySlice zero value is
    // `nil` using an if conditional statement
    if mySlice == nil {
        fmt.Println("The zero value is nil") // The zero value is nil ✅ This will be printed upon execution.

        // check the capacity and the length of the `mySlice` slice
        fmt.Println(cap(mySlice), len(mySlice)) // 0 0 ✅
    }
}
Enter fullscreen mode Exit fullscreen mode

For example, First, let's declare an int slice like this,

package main

func main(){
    // declare an int slice
    var mySlice []int
}
Enter fullscreen mode Exit fullscreen mode

Now to see if the initial or the zero value of the mySlice slice, let's use a simple if conditional check to see if the slice is equal to the value of nil.

It can be done like this,

package main

import "fmt"

func main(){
    // declare an int slice
    var mySlice []int

    // check if the mySlice zero value is
    // `nil` using an if conditional statement
    if mySlice == nil {
        fmt.Println("The zero value is nil") // The zero value is nil ✅ This will be printed upon execution.
    }
}
Enter fullscreen mode Exit fullscreen mode

As you can see that the if condition has become true which, proves that the zero value of the mySlice slice is nil.

Now let's also print the capacity and the length of the mySlice slice using the cap() and the len() method respectively.

It can be done like this,

package main

import "fmt"

func main() {
    // declare an int slice
    var mySlice []int

    // check if the mySlice zero value is
    // `nil` using an if conditional statement
    if mySlice == nil {
        fmt.Println("The zero value is nil") // The zero value is nil ✅ This will be printed upon execution.

        // check the capacity and the length of the `mySlice` slice
        fmt.Println(cap(mySlice), len(mySlice)) // 0 0 ✅
    }
}
Enter fullscreen mode Exit fullscreen mode

As you can see that the zero value of the slice is nil and the capacity and length of the slice are 0.

See the above code live in The Go Playground.

That's all 😃.

Feel free to share if you found this useful 😃.


Top comments (0)