The Go Programming Language Specification
Version von 28. Juni 2017
Eine Typdefinition erstellt eine neue, unterschiedliche Art mit dem gleichen zugrunde liegenden Typ und Operationen als den angegebenen Typ und bindet eine Kennung an es.
TypeDef = identifier Type .
Der neue Typ wird eine definierte Art genannt. Es unterscheidet sich von jedem anderen Typ , einschließlich des Typs, aus dem es erstellt wird.
Ein definierter Typ unterscheidet sich immer von einem anderen Typ. Ansonsten sind zwei Typen identisch, wenn ihre zugrundeliegenden Literale strukturell äquivalent sind; das heißt, sie haben die gleiche wörtliche Struktur und entsprechende Komponenten haben identische Typen.
T0 und T1 sind definierte Typen und unterscheiden sich daher.
The Go Programming Language Specification
Version vom 28. Juni 2017
Types
bestimmt eine Art, die einen Satz von Werten zusammen mit Operationen und Verfahren spezifisch für diese Werte. Ein Typ kann durch einen Typnamen angegeben werden, wenn er einen Wert aufweist oder mit einem Typliteral angegeben wird, das einen Typ aus vorhandenen Typen zusammensetzt.
Benannte Instanzen der booleschen, numerischen und Zeichenfolgetypen sind vordeklariert. Andere benannte Typen werden mit Typdeklarationen eingeführt.
Type declarations
A Typdeklaration bindet eine Kennung, die Typenbezeichnung, auf einen Typ. Geben Sie Deklarationen in zwei Formen: Alias-Deklarationen und Typ Definitionen.
TypeDecl = "type" (TypeSpec | "(" { TypeSpec ";" } ")") .
TypeSpec = AliasDecl | TypeDef .
Alias Erklärungen
Ein Alias Erklärung bindet eine Kennung an den gegebenen Typ.
AliasDecl = identifier "=" Type .
Im Rahmen des Identifizierers, dient es als ein Alias für den Typ .
Typdefinitionen
Eine Typdefinition erstellt eine neue, unterschiedliche Art mit dem gleichen zugrunde liegenden Typ und Operationen wie die Art gegeben, und binden eine Kennung zu.
TypeDef = identifier Type .
Der neue Typ wird eine definierte Art genannt. Es unterscheidet sich von jedem anderen Typ , einschließlich des Typs, aus dem es erstellt wird.
Type identity
Zwei Typen sind entweder gleich oder verschieden sind.
Ein definierter Typ unterscheidet sich immer von einem anderen Typ. Ansonsten sind zwei Typen identisch, wenn ihre zugrundeliegenden Literale strukturell äquivalent sind; das heißt, sie haben die gleiche wörtliche Struktur und entsprechende Komponenten haben identische Typen.
@ JimB: "Zwei Slice-Typen sind identisch, wenn sie identische Elementtypen haben." Nicht zutreffend für definierte Typen: [Typidentität] (https://golang.org/ref/spec#Type_identity). 'Ein definierter Typ unterscheidet sich immer von einem anderen Typ.' – peterSO
@shx: Die aktuelle Version der Go-Programmiersprachenspezifikation finden Sie unter https://golang.org/ref/spec. Woher bekommst du deine Zitate? – peterSO
@peterSO, ja, meinte es nicht als Antwort, nur um herauszufinden, woher dieses Zitat überhaupt kam und warum das überhaupt eine Frage ist. – JimB