So bestimmen Sie, ob eine Variable ein Slice oder ein Array in der Go-Sprache ist: 1. Bestimmen Sie, ob die Länge der Variablen bei der Bestimmung nicht geändert werden kann. Wenn sie nicht geändert werden kann, bedeutet dies, dass die Variable ein Array-Array ist ; 2. Definieren Sie einen Längenwert in Klammern mit der Länge. Der Wert ist ein Array-Array, andernfalls handelt es sich um ein Slice-Slice.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Go-Version 1.11.2, Dell G3-Computer.
Empfohlen: „go Language Tutorial“
Bestimmen Sie, ob eine Variable ein Array oder ein Slice in Golang ist
Der Unterschied zwischen Array und Slice
Der größte Unterschied zwischen den beiden besteht darin, dass einmal das Array Die Länge ist festgelegt, sie kann nicht geändert, nicht verlängert oder verkürzt werden. Kapazität der Schneidewaage. Und das Array ist ein Werttyp. Wenn ein Array einem anderen Array zugewiesen wird, erfolgt eine Wertkopie, während das Slice ein Zeigertyp ist und der Zeiger kopiert wird.
Das Folgende wird anhand eines Beispiels erklärt:
Der Code ist wie unten gezeigt: (1) definiert ein Array vom Typ [3]int und weist 1, 2 und 3 nacheinander Werte zu. (2) Weisen Sie Array a zu b zu, und der Wert wird kopiert. (3) Die Zuweisung eines Werts von 4 zum Element bei Index 2 von Array a hat keinen Einfluss auf den Inhalt von Array b. (4) Drucken Sie die Ergebnisse aus, um die Situation zu erläutern.
Ich schaue mir einen anderen Code an: (1) Die Länge ist nicht angegeben, (2) das Ergebnis wird gedruckt, was zeigt, dass die Änderung von a den Inhalt von b beeinflusst.
Warum macht eine kleine Veränderung so einen Unterschied? Dies ist der subtile Unterschied in der Syntax bei der Definition von Array und Slice:
Die Definition eines Längenwerts in Klammern ist die einzige Grundlage für den Compiler, um den Datentyp der Variablen a zu unterscheiden. Mit einem Längenwert handelt es sich um ein Array Es ist ein Array. Es ist in Scheiben geschnitten. Zurück zur Frage, wie man die folgenden Variablen unterscheidet:
var a1 []int ---> hat keine Längendefinition, es ist Slicevar a2 [2]int ---> , Es ist Arrayvar a3 [3]*int---> Es hat eine Längendefinition, es ist Arrayvar a4 [4][3]int ---> Es hat eine Längendefinition, es ist ein Array , es ist nur ein zweidimensionales Array. Weitere Kenntnisse zum Thema Programmierung finden Sie unter:Programmierlehre
! !Das obige ist der detaillierte Inhalt vonSo bestimmen Sie, ob eine Variable ein Slice oder ein Array in der Go-Sprache ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!