Heim >Backend-Entwicklung >Golang >Wie kann ich ein Go-Slice in ein Array konvertieren, ohne es zu kopieren?

Wie kann ich ein Go-Slice in ein Array konvertieren, ohne es zu kopieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 06:14:12793Durchsuche

How Can I Convert a Go Slice to an Array Without Copying?

Slices in Arrays konvertieren

In Go kann die Konvertierung eines Slices in ein Array ohne Kopieren durch die Verwendung eines Tricks oder einer for-Schleife erreicht werden.

Um den Trick anzuwenden, übergeben Sie das Array als Slice an die Kopierfunktion:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}

lead := Lead{}
copy(lead.Magic[:], buffer[0:4])

Alternativ eine for-Schleife kann verwendet werden:

for index, b := range buffer[0:4] {
    lead.Magic[index] = b
}

Mithilfe von Literalen kann ein Slice direkt in ein Array umgewandelt werden:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}

lead := Lead{
  Magic: [4]byte{'h', 'e', 'l', 'l'},
  ...
}

Das obige ist der detaillierte Inhalt vonWie kann ich ein Go-Slice in ein Array konvertieren, ohne es zu kopieren?. 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