On Thursday, September 29, 2016 at 1:07:42 PM UTC+8, Henrik Johansson wrote:
>
> I am not sure but perhaps as simple as it is a very natural and known 
> behavior of maps and to make it work syntactically as the type assertion 
> would make it weird. 
>
>
yes. 
It is really weird that the behavior of type assertion depends on whether 
the second OK result value is received or not.
 

> On Thu, Sep 29, 2016, 07:02 T L <tapi...@gmail.com <javascript:>> wrote:
>
>>
>>
>> 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> 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.
>>>> 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.

Reply via email to