nil slices vs non-nil slices vs empty slices in Go language : <p>I am a newbee to Go programming. I have read in go programming book that slice consists of three things: a pointer to an array, length and capacity.</p>

<p>I am getting confused between nil slices(slice has no underlying array to point to, len = 0,cap=0), non-nil slices where only len = 0,cap = 0 and empty slices.</p>

<p>Can anyone please tell whether nil and empty slices are same things? 
If they both are different, then please tell what is the difference between those two?</p>

<p>How to test whether a slice is empty or not?</p>

<p>Also, what value does the pointer holds in non-nil slices, whose length and capacity are zero?</p>
