Maison >développement back-end >Golang >Comment puis-je convertir idiomatiquement une tranche []byte en un int64 dans Go ?

Comment puis-je convertir idiomatiquement une tranche []byte en un int64 dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-08 20:42:14534parcourir

How Can I Idiomatically Convert a []byte Slice to an int64 in Go?

Amélioration de l'idiome du code dans Go : convertir []byte Slice en int64

La question centrale de l'article se concentre sur la recherche d'une approche plus idiomatique dans Go pour convertir une tranche d'octets [] en un type de données int64. Bien que le code fourni offre une solution viable, il lui manque l'élégance et l'efficacité qui caractérisent la programmation idiomatique Go.

Pour améliorer le langage du code, nous pouvons tirer parti de la capacité de Go à manipuler efficacement les tranches. Au lieu de parcourir manuellement la tranche et d'effectuer des opérations au niveau du bit, nous pouvons simplifier le processus en utilisant une boucle à plage unique qui parcourt chaque octet de la tranche.

Le code optimisé ci-dessous illustre cette approche :

func main() {
    var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244}
    var data int64 = 0
    for _, b := range mySlice {
        data = (data << 8) | int64(b)
    }
    fmt.Printf("%d\n", data)
}

Avec cet ajustement, le code devient plus succinct et lisible, s'alignant mieux sur le style idiomatique de Go. L'utilisation de la boucle de plage simplifie le fonctionnement au niveau du bit et améliore la clarté globale et la maintenabilité du code.

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