On Thursday, January 6, 2022 at 8:35:06 PM UTC+8 Brian Candler wrote:

> No, the mistake is in your reading of the spec.  You are complaining about 
> this line:
>
> interface{ int; any } // no specific types (intersection is empty)
>
> The spec makes it clear that:
> 1. "any" is short for "interface {}"
> 2. "interface {}" has no *specific types*
>
>
I think your logic mistake here is that the operands of the union and 
intersection operations are type sets, instead of specific types.
 

> You are taking the intersection of the set of one type (int) with the 
> empty set, and therefore the result is the empty set.  Exactly as the 
> comment says.
>
> On Thursday, 6 January 2022 at 11:47:52 UTC tapi...@gmail.com wrote:
>
>> On Thursday, January 6, 2022 at 6:15:06 PM UTC+8 Brian Candler wrote:
>>
>>> 1. interface { a;b } is intersection. The "Intersection" between two 
>>> sets means things which exist in both sets simultaneously.
>>> 2. interface { a|b } is union.  "Union" means a set of things which 
>>> which exist in set A *or* set B.
>>>
>>> Quoting from the spec:
>>> *"the predeclared type *any* is an alias for the empty interface." *
>>> *"interface{} // no specific types"*
>>> *"For an interface with type elements, 𝑆 is the intersection of the 
>>> specific types of its type elements."*
>>>
>>> Can you see now?
>>>
>>
>> The explanation is as what I think.
>> But what is your conclusion? Is it a mistake in spec?
>>
>

-- 
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/856006f6-0624-43e9-b3b8-a07a0d6744a6n%40googlegroups.com.

Reply via email to