Also tauchst du in Go und du hörst von Scheiben. "Was sind überhaupt Scheiben?" Sie könnten sich wundern. Sind Arrays nicht genug? Nun, lass es uns aufschlüsseln! Slices sind ein Killer -Feature in Go. Sie sind wie Arrays, aber viel kühler - sie sind dynamisch und flexibel und in der Lage, zu wachsen und zu schrumpfen, wie Ihr Programm benötigt. Aber auf dem Weg gibt es ein oder zwei Haken. Lassen Sie uns alles auspacken und Sie in Scheiben schneiden!
In ihrem Kern sind Scheiben Arrays. Im Gegensatz zu statischen Arrays sind die Scheiben dynamisch. Sie können die Größe ändern, was sehr praktisch ist, wenn Ihre Datenbedürfnisse unvorhersehbar sind. Stellen Sie sich vor, Sie haben eine Liste von Elementen und manchmal sind es 5 Artikel, aber manchmal könnten es 50 sein! Scheiben machen das keine große Sache. Sie ändern sich einfach selbst - irgendwie wie Magie. ✨
Aber hier ist der Deal: Jedes Mal, wenn eine Slice die Größe ändert, wird darunter ein brandneues Array erstellt und die Daten in dieses neue Array kopiert. Komfortabel? Definitiv! Aber hier gibt es ein bisschen rechnerische Kosten. Jede Änderungsgröße bedeutet, dass GO neue Erinnerungen zuweisen und Dinge herumschurpfen muss.
Hier ist ein praktischer GO -Tipp für YA: Wenn Sie wissen, dass Sie viel Platz für eine Scheibe benötigen, verwenden Sie die Make -Funktion. Mit Make ([] T, Len, Cap) erzählen Sie Go: "Hey, gib mir ein Stück dieser Art, mit dieser Länge und dieser Kapazität." Eine anfängliche Kapazität, die bereit ist, zu gehen, erspart Ihnen die Kosten für die spätere Änderung. Klug, richtig?
numbers := make([]int, 0, 100)
Dieses Stück beginnt mit einer Kapazität von 100, enthält aber noch keine Gegenstände. Sie sind bereit, es zu füllen, ohne die Dinge ständig zu ändern. Auf lange Sicht sparen Sie auf Leistung.
Jedes Stück hat eine Länge (Len) und eine Kapazität (Kappe), und sie spielen verschiedene Rollen:
Wenn Sie eine Scheibe anbauen möchten, ist angehängt ist Ihre Anlaufstelle. Es wurde entwickelt, um Elemente am Ende Ihres Slice hinzuzufügen, und die Scheibe automatisch verändert, falls erforderlich. Verabschieden Sie sich von Fehlern außerhalb der Untergrenzen (na ja, meistens)!
numbers := []int{1, 2, 3} numbers = append(numbers, 4, 5, 6)
Wenn das Slice genügend Kapazität hat, um die neuen Elemente anzupassen, wird es verwendet. Wenn nicht, erstellt Append ein neues Array mit mehr Speicherplatz und verschiebt Ihre Daten. Einfach so! Laut effektivem GO wird Anhang "ein neues zugrunde liegendes Array zuweisen", wenn die Kapazität nicht ausreicht. Ziemlich ordentlich, richtig?
Slices in Go sind dein Freund - und ein mächtiger. Sie lassen Sie flexibel mit Datensammlungen arbeiten, während Sie einige der grobkörnigen Details der Speicherverwaltung verbergen. Aber denken Sie daran: Mit großer Macht kommt große Verantwortung. Jede Größe ist mit ein wenig Rechenaufwand ausgestattet. Wenn Sie verstehen, wie Scheiben funktionieren und wie sich das Herstellen und Anhängen helfen kann, sind Sie auf dem besten Weg, effiziente, elegante Go -Code zu schreiben.
effektiv-go
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3