On Thursday, September 29, 2016 at 12:56:57 PM UTC+8, Micky wrote: > > The reason is directly stated in the Go language spec: > > "If the type assertion holds, the value of the expression is the value > stored in x and its type is T. If the type assertion is false, a run-time > panic <https://golang.org/ref/spec#Run_time_panics> occurs." > > Here "hold" means if it succeeds. > > I know of the syntax in spec. I just want to understand what is the deep reason for the syntax inconsistency between map index and type assert.
> > On Thu, Sep 29, 2016 at 9:53 AM, T L <tapi...@gmail.com <javascript:>> > wrote: > >> >> >> On Thursday, September 29, 2016 at 12:32:48 PM UTC+8, Henrik Johansson >> wrote: >>> >>> This is just how type assertion works. >>> If you don't use the dual return it panics if the actual type is >>> different from the one you try to assert. >>> >> >> but what is the underlining reason for the inconsistency between map >> index and type assert? >> >> >>> >>> On Thu, Sep 29, 2016, 05:26 T L <tapi...@gmail.com> wrote: >>> >>>> package main >>>> >>>> func main() { >>>> var m = map[string]int{} >>>> _, _ = m["abc"] // ok >>>> _ = m["abc"] // ok >>>> >>>> var i interface{} = 789 >>>> _, _ = i.(bool) // ok >>>> _ = i.(bool) // panic: interface conversion: interface is int, not >>>> bool >>>> } >>>> >>>> -- >>>> 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...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> 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...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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. For more options, visit https://groups.google.com/d/optout.