Avatar ·

Comment convertir une chaîne en slice de bytes ([]byte) en Go ?

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème qui semble élémentaire, mais je n'arrive pas à trouver la bonne solution.

J'ai une chaîne :

s := "Hello, World!"

Je dois la convertir en slice de bytes []byte pour la passer à une fonction qui accepte exactement ce type. J'ai essayé plusieurs options, mais elles provoquent des erreurs de compilation ou une panique.

Voici ce que j'ai essayé :

package main

import "fmt"

func main() {
    s := "Hello, World!"
    // Option 1 : directement
    var b []byte = s
    fmt.Println(b)

    // Option 2 : via make et copy
    b2 := make([]byte, len(s))
    b2 = s
    fmt.Println(b2)
}

La première option donne : cannot use s (type string) as type []byte in assignment. La seconde ne fonctionne pas non plus : cannot use s (type string) as type []byte in assignment.

Je comprends que la chaîne et le slice de bytes sont des types différents.