Unterschiede: 1. Slices sind Zeigertypen, Arrays sind Werttypen. 2. Die Länge von Arrays ist fest, Slices jedoch nicht (Slices können als dynamische Arrays betrachtet werden). 3. Slices haben ein weiteres Kapazitätsattribut (Cap). als Arrays ;4. Die unterste Ebene des Slice ist ein Array.
Die Betriebsumgebung dieses Artikels: Windows 10-System, Go 1.11.2, Thinkpad T480-Computer.
Verwandte Empfehlungen: „go-Tutorial“
Was gibt der folgende Code aus? Was wird ausgegeben, wenn die Kommentare entfernt werden?
package main import ( "fmt" ) func main() { a := [2]int{5, 6} b := [2]int{5, 6} if a == b { fmt.Println("equal") } else { fmt.Println("not equal") } /* if a[:] == b[:] { fmt.Println("equal") } else { fmt.Println("not equal") } */ }
Ausgabe:
equal
Entfernen Sie die Kommentaraufforderung:
invalid operation: a[:] == b[:] (slice can only be compared to nil)
Erklärung:
Der Unterschied zwischen Arrays und Slices in der Go-Sprache
● Slices sind Zeigertypen, Arrays sind Werttypen
● Die Länge von Das Array ist fest, Slices jedoch nicht (Slices sind dynamische Arrays)
● Slices haben ein Attribut mehr als Arrays: Kapazität (Obergrenze)
● Die unterste Schicht von Slices sind Arrays
A und b definieren also Array-Typen , und der Array-Vergleich ist derselbe
Allerdings sind a[:] und b[:] Slices, und die Äquivalenzbeurteilung zwischen Slices kann nicht erfolgen, sondern nur mit Null.
Für weitere programmierbezogene Kenntnisse: Bitte besuchen Sie: Programmierunterricht! !
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Arrays und Slices in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!