well, i know...very appreciate for your explaination, thank you very much.

在 2019年10月11日星期五 UTC+8下午12:41:55,Kurtis Rader写道:
>
> Note that other languages, such as Python, have the same behavior as Go 
> for the reason mentioned by Ian. If you call Pop() on an empty 
> interface/list/etc., and it returns a distinct value for that condition, 
> you still have to check that the pop failed. It is better to require the 
> caller to do the check before the pop. This means that callers which don't 
> do so will randomly fail. Which is a net positive.
>
> On Thu, Oct 10, 2019 at 9:30 PM Ian Lance Taylor <ia...@golang.org 
> <javascript:>> wrote:
>
>> On Thu, Oct 10, 2019 at 9:14 PM 陈清和 <chen...@gmail.com <javascript:>> 
>> 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 golan...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/CAOyqgcVjycg_%2BfGJvUzXrq4FARsOz45RTPSi2Fu3HFjDvfc5bg%40mail.gmail.com
>> .
>>
>
>
> -- 
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>

-- 
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/4955f4db-24d3-42c6-9bfb-bc76fb59ac84%40googlegroups.com.

Reply via email to