Maison > développement back-end > Golang > le corps du texte

Casting d'un tableau go à l'aide d'un alias de type

王林
Libérer: 2024-02-12 10:57:08
avant
539 Les gens l'ont consulté

使用类型别名强制转换 go 数组

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.

Contenu de la question

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)
}
Copier après la connexion

Workaround

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)
}
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal