Go (Español)

From ArchWiki
Jump to navigation Jump to search

Go es un lenguaje de tipo estático con sintaxis derivada de C, agregando gestión de memoria, recolector de basura, seguridad de tipos, algunas capacidades de escritura dinámica, tipos incorporados adicionales tales como matrices de longitud variable y mapas de valores clave y una gran biblioteca estándar.

Instalación

Actualmente, hay dos compiladores para Go, y se pueden instalar desde los repositorios oficiales:

  • go: Interfaz con el conjunto de herramientas de compilación que pueden instalarse con el paquete go
    • Compilación rápida
    • Herramientas oficiales (go get, go doc, etc.)
    • Compilación cruzada
  • gccgo: frontend para gcc, parte de su colección compiladora, puede instalarse con gcc-go
    • Goroutines se convierte en pleno flujo
    • Tamaño pequeño del binario (enlazamiento dinámico)

Probar instalación

Para verificar si Go está instalado correctamente, se puede escribir un simple programa a modo de prueba, como el siguiente:

hello.go
package main

import "fmt"

func main() {
    fmt.Println("Hola, Arch!")
}

Luego, ejecutar con go:

$ go run hello.go
Hola, Arch!

Compilación con el compilador estándar gc (mismo que go build -compiler=gc hello.go):

$ go build hello.go

Compilación con gccgo (mismo que go build -compiler=gccgo hello.go):

$ gccgo hello.go -o hello

$GOPATH

Las dependencias de Go, cuando se usan, por ej. en las declaraciones import, se buscan en la variable $GOPATH, y luego - en $GOROOT (en el directorio de instalación, /usr/lib/go por defecto). Si se desea usar dependencias externas, no únicamente las que están en $GOROOT, se debe especificar el área de trabajo en ~/.bash_profile (o su equivalente):

export GOPATH=~/go
Sugerencia: Se pueden ver todas las variable de Go ejecutando go env

Crear el espacio de trabajo:

$ mkdir -p ~/go/{bin,src}

src el directorio se usa para guardar los archivos de código fuente, y bin para los ejecutarlos.

También se puede agregar la ruta a el directorio bin en $PATH para ejecutar programas instalados (escritos en el lenguaje de programación Go) donde sea (como, por ejemplo, ls):

export PATH="$PATH:$GOPATH/bin"

Notese que también se añadió el subdirectorio bin a la variable $PATH así se podrá ejecutar cualquier programa instalado requerido.

Ejecute go help gopath para más información.

Habilitar la compilación cruzada para otras plataformas

El paquete oficial sólo admite arquitecturas de Linux amd64, 386 y arm. Para admitir la compilación cruzada de Darwin, FreeBSD y MS Windows, siga lo siguiente.

No se puede construir /usr/lib/go/src por sí sólo, por ej. si se configura $GOROOT_BOOTSTRAP a /usr/lib/go se obtendrá una advertencia como esta:

 $ cd /usr/lib/go/src
 $ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=darwin GOARCH=amd64 ./make.bash --no-clean 
 ##### Building Go bootstrap tool.
 cmd/dist
 ERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOT
 Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

Para evitar eso, consiga una copia de Go desde https://golang.org/.

Nota: Los comandos siguientes asumirán que extrajo la descarga de Go a ~/downloads/go.

Construye tu versión descargada de Go.

 $ cd ~/downloads/go/src
 $ GOROOT_BOOTSTRAP=/usr/lib/go GOOS=linux GOARCH=amd64 ./make.bash --no-clean

Ahora puede construir su sistema. Utilice el comando de arranque.

 $ cd /usr/lib/go/src; for os in darwin freebsd windows; do for arch in amd64 386; do sudo GOROOT_BOOTSTRAP="$HOME/downloads/go" GOOS=$os GOARCH=$arch ./make.bash --no-clean; done; done
Nota: Estos comandos tendrán que ejecutarse después de cada actualización del paquete Go.

Para más información, ver FS#30287.

Solución de problemas

Complemento para Jetbrains

Si estás usando el entorno de desarrollo de Jetbrains y el complemento de Go no puede encontrar la ruta hacia el SDK, podrías estar usando un paquete incompatible. Remueve el paquete gcc-go y reemplazalo con go. Si la ruta GOPATH esta configurada, el IDE debería ser capaz de buscar el SDK de Go en /usr/lib/go.

Ver también