Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen Arrays und Slices in der Go-Sprache?

Was ist der Unterschied zwischen Arrays und Slices in der Go-Sprache?

青灯夜游
青灯夜游Original
2020-12-08 17:12:3714500Durchsuche

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.

Was ist der Unterschied zwischen Arrays und Slices in der Go-Sprache?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn