Schnittstelle & Integer Vergleich in Golang

8

Ich verstehe nicht, warum das erste Ergebnis falsch ist, während das zweite wahr ist.

Jede Hilfe wird geschätzt.

%Vor%

Probieren Sie es hier Spielplatz gehen

    
Alex.Li 06.01.2017, 03:20
quelle

1 Antwort

10

Weil 0 eine untypisierte Konstante ist, deren Standardtyp int , nicht uint64 ist, und wenn Sie einen Vergleich mit einer Schnittstelle durchführen, muss die Sache, mit der Sie vergleichen, derselbe Typ und derselbe Wert für sie sein als gleich angesehen werden.

Ссылка

  

Die Gleichheitsoperatoren == und! = gelten für Operanden, die vergleichbar sind. Die Sortieroperatoren & lt ;, & lt; =, & gt; und & gt; = gelten für Operanden, die geordnet sind. Diese Begriffe und das Ergebnis der Vergleiche sind wie folgt definiert:

     

Ein Wert x des Nicht-Schnittstellentyps X und ein Wert t des Schnittstellentyps T sind vergleichbar, wenn Werte vom Typ X vergleichbar sind und X T implementiert. Sie sind gleich, wenn der dynamische Typ von t identisch mit X ist und der dynamische Wert von t ist gleich x.

    
dave 06.01.2017, 03:47
quelle

Tags und Links