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.

Reply via email to