Avatar ·

¿Cómo convertir una string a un slice de bytes ([]byte) en Go?

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema que parece elemental, pero no puedo encontrar la solución correcta.

Tengo una string:

s := "Hello, World!"

Necesito convertirla a un slice de bytes []byte para pasarla a una función que acepta exactamente ese tipo. Probé varias opciones, pero causan errores de compilación o pánico.

Esto es lo que intenté:

package main

import "fmt"

func main() {
    s := "Hello, World!"
    // Opción 1: directamente
    var b []byte = s
    fmt.Println(b)

    // Opción 2: con make y copy
    b2 := make([]byte, len(s))
    b2 = s
    fmt.Println(b2)
}

La primera opción da: cannot use s (type string) as type []byte in assignment. La segunda tampoco funciona: cannot use s (type string) as type []byte in assignment.

Entiendo que una string y un slice de bytes son tipos diferentes