Maison > Article > développement back-end > Casting d'un tableau go à l'aide d'un alias de type
En langage Go, la conversion d'un tableau à l'aide d'un alias de type est une opération courante. Les alias de type créent un nouveau nom pour un type existant afin de faciliter la conversion de type. En utilisant des alias de type, nous pouvons convertir un tableau en un tableau d'un autre type. Cette opération de conversion est très simple dans le langage Go et peut améliorer efficacement la lisibilité et la maintenabilité du code. Dans cet article, nous présenterons comment convertir un tableau Go à l'aide d'alias de type et fournirons quelques exemples pour aider les lecteurs à mieux comprendre ce concept.
Supposons que j'ai un type défini bytes
qui est un tableau d'octets comme indiqué ci-dessous. Existe-t-il un moyen simple de convertir un tableau de tableaux d'octets en tableau d'octets ou vice versa ?
package main type Bytes []byte func main() { x := make([][]byte, 3) y := ([]Bytes)(x) }
Non, malheureusement, go ne permet pas la conversion directe entre différents types, même s'il s'agit d'alias. L'alias revient plutôt à donner un nouveau nom à un type existant, mais il ne fournit aucune forme de conversion automatique.
Vous devez parcourir manuellement [][]byte et convertir chaque []byte en tapant bytes.
La méthode de fonctionnement spécifique est la suivante :
package main import "fmt" type Bytes []byte func main() { x := make([][]byte, 3) // Initializing byte slices for demonstration purposes for i := range x { x[i] = []byte{byte(i), byte(i+1)} } y := make([]Bytes, len(x)) for i, v := range x { y[i] = Bytes(v) } fmt.Println("Hello, 世界", y) }
Ce code itère manuellement x, convertissant chaque []byte en un byte et le plaçant dans la position correspondante dans y.
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!