Maison  >  Article  >  développement back-end  >  Découvrez comment supprimer des octets dans Golang

Découvrez comment supprimer des octets dans Golang

PHPz
PHPzoriginal
2023-04-06 08:54:44681parcourir

Dans Golang, les données de type octet représentent un octet de 8 bits. Dans de nombreux cas, nous devons supprimer certains octets inutiles. Dans cet article, nous explorerons comment supprimer un octet dans Golang.

Méthode 1 : Utilisez la fonction de copie

Dans Golang, nous pouvons utiliser la fonction de copie pour réaliser la suppression d'octets. La définition de la fonction de copie est la suivante :

func copy(dst, src []Type) int

Parmi eux, dst est le tableau d'octets cible, src est le tableau d'octets source et Type représente le type de données. La fonction de copie renvoie le nombre d'éléments copiés.

Supposons que nous devions supprimer des éléments de l'index i à l'index j dans un tableau d'octets de longueur n. À ce stade, nous pouvons utiliser la fonction de copie pour copier les éléments de j+1 ~ n vers les positions de i ~ n-j+i, réalisant ainsi la suppression d'octets. Le code spécifique est le suivant :

func deleteByte(s []byte, i, j int) []byte {
    copy(s[i:], s[j+1:])
    return s[:len(s)-(j-i+1)]
}

où i et j représentent respectivement la position de début et la position de fin de l'octet qui doit être supprimé. La fonction deleteByte accepte un tableau d'octets comme paramètre et renvoie un nouveau tableau avec l'octet spécifié supprimé.

Nous pouvons tester l'effet de la fonction deleteByte via le code suivant :

func main() {
    s := []byte{'a', 'b', 'c', 'd', 'e', 'f'}
    s = deleteByte(s, 1, 3)
    fmt.Println(s) // 输出 [a e f]
}

Méthode 2 : utiliser la fonction append

En plus d'utiliser la fonction de copie, nous pouvons également utiliser la fonction append pour réaliser la suppression d'octets. La méthode spécifique consiste à utiliser la fonction append pour stocker les octets avant et après l'octet qui doit être supprimé dans un nouveau tableau pour obtenir l'effet de suppression. Le code spécifique est le suivant :

func deleteByte2(s []byte, i, j int) []byte {
    if i >= len(s) || j >= len(s) || i > j {
        return s
    }
    before := s[:i]
    after := s[j+1:]
    return append(before, after...)
}

où i et j représentent respectivement la position de départ et la position de fin de l'octet qui doit être supprimé. La fonction deleteByte2 accepte un tableau d'octets comme paramètre et renvoie un nouveau tableau avec l'octet spécifié supprimé.

Nous pouvons tester l'effet de la fonction deleteByte2 via le code suivant :

func main() {
    s := []byte{'a', 'b', 'c', 'd', 'e', 'f'}
    s = deleteByte2(s, 1, 3)
    fmt.Println(s) // 输出 [a e f]
}

Les deux méthodes peuvent réaliser la suppression d'octets, la méthode à utiliser dépend de la situation spécifique et des préférences personnelles. J'espère que cet article pourra être utile aux développeurs Golang.

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