Maison  >  Article  >  développement back-end  >  Comment convertir un tableau de taille fixe en tranche de taille variable dans Go ?

Comment convertir un tableau de taille fixe en tranche de taille variable dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 21:37:02304parcourir

How do you convert a fixed-size array to a variable-sized slice in Go?

Conversion d'un tableau de taille fixe en tableau de taille variable dans Go

Lorsque vous travaillez avec des tableaux et des tranches dans Go, il est essentiel de comprendre leurs différences. Les tableaux sont des structures de données de taille fixe, tandis que les tranches sont de taille variable et plus flexibles.

Dans l'exemple donné, vous essayez de convertir un tableau de taille fixe de 32 octets ([32]byte) en une tranche de taille variable ([]byte). Cependant, tenter cela directement avec b := []byte(a) entraînera une erreur de compilation.

Solution

Pour réussir à convertir un tableau de taille fixe en une tranche de taille variable, suivez cette syntaxe :

b := a[:]

En utilisant la syntaxe a[:], vous créez une tranche qui fait référence aux éléments du tableau sous-jacents. C'est ce qu'on appelle « découper » un tableau. La tranche b résultante aura les mêmes éléments que le tableau d'origine a mais se comportera comme une tranche de taille variable, vous permettant de modifier sa longueur de manière dynamique.

Exemple

package main

import (
    "fmt"
)

func main() {
    var a [32]byte
    b := a[:]
    fmt.Println(len(b)) //prints 32, indicates the initial length of b matches array a
    b = b[5:] //slicing the slice b, modifies its length
    fmt.Println(len(b)) //prints 27, indicating the new length of b after slicing
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn