On Thu, Oct 10, 2019 at 9:14 PM 陈清和 <chenqh...@gmail.com> wrote: > > src/container/heap/heap.go: > > ```go > func Pop(h Interface) interface{} { > n := h.Len() - 1 > h.Swap(0, n) > down(h, 0, n) > return h.Pop() > } > ``` > > While the h is empty, also the h.Len() equals to 0,why not return nil in > advance? In the current way, we have to do boundary check in implement of > Swap, otherwise there will be panic.
This is not really different from the fact that var s []int fmt.Println(s[0]) will also panic. Yes, if you don't know how many elements you have, you need to check the length. Ian -- 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/CAOyqgcVjycg_%2BfGJvUzXrq4FARsOz45RTPSi2Fu3HFjDvfc5bg%40mail.gmail.com.