Running this:

emptyslice := []string{}
sh := (*reflect.SliceHeader)(unsafe.Pointer(&emptyslice))
fmt.Printf("empty slice cap = %d\n", sh.Cap)
fmt.Printf("empty slice len = %d\n", sh.Len)
fmt.Printf("empty slice uintptr = %v\n", sh.Data)

Output:

empty slice cap     = 0
empty slice len     = 0
empty slice uintptr = 824634224152

The non-zero uintptr suggests that something is allocated on the heap. But 
the cap is 0, so any backing array should have a size of 0. So what is 
allocated on the heap? Surely not an array of size 0?


mathew

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/281f51c3-b94f-4b13-9d80-7b0236d8dbfan%40googlegroups.com.

Reply via email to