Primeros pasos con Go

¡Hola Mundo!

Coloque el siguiente código en un nombre de archivo hello.go:

package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}

Patio de juegos

Cuando Go está instalado correctamente, este programa puede compilarse y ejecutarse así:

go run hello.go

Producción:

Hello, 世界

Una vez que esté satisfecho con el código, puede compilarlo en un ejecutable ejecutando:

go build hello.go

Esto creará un archivo ejecutable apropiado para su sistema operativo en el directorio actual, que luego puede ejecutar con el siguiente comando:

Linux, OSX y otros sistemas similares a Unix

./hello

Ventanas

hello.exe

Nota: Los caracteres chinos son importantes porque demuestran que las cadenas Go se almacenan como segmentos de bytes de solo lectura.

Configuración del entorno

Si Go no está preinstalado en su sistema, puede ir a https://golang.org/dl/ y elegir su plataforma para descargar e instalar Go.

Para configurar un entorno de desarrollo básico de Go, solo se deben configurar algunas de las muchas variables de entorno que afectan el comportamiento de la herramienta go (consulte: [Lista de variables de entorno de Go] 1 para obtener una lista completa) (generalmente en el archivo ~/.profile de su shell, o equivalente en sistemas operativos similares a Unix).

GOPATO

Al igual que la variable de entorno PATH del sistema, la ruta de Go es una lista delimitada :(; en Windows) de directorios donde Go buscará paquetes. La herramienta go get también descargará paquetes al primer directorio de esta lista.

El GOPATH es donde Go configurará las carpetas asociadas bin, pkg y src necesarias para el espacio de trabajo:

  • src — ubicación de los archivos fuente: .go, .c, .g, .s
  • pkg — ha compilado archivos .a
  • bin: contiene archivos ejecutables creados por Go

Desde Go 1.8 en adelante, la variable de entorno GOPATH tendrá un [valor predeterminado][2] si no está configurada. El valor predeterminado es $HOME/go en Unix/Linux y %USERPROFILE%/go en Windows.

Algunas herramientas asumen que GOPATH contendrá un único directorio.

GOBIN

El directorio bin donde ‘ir a instalar’ y ‘ir a buscar’ colocará los archivos binarios después de construir los paquetes ‘principales’. Por lo general, esto se establece en algún lugar del sistema RUTA para que los archivos binarios instalados puedan ejecutarse y descubrirse fácilmente.

GOROOT

Esta es la ubicación de su instalación de Go. Se utiliza para encontrar las bibliotecas estándar. Es muy raro tener que establecer esta variable ya que Go incorpora la ruta de compilación en la cadena de herramientas. Es necesario configurar GOROOT si el directorio de instalación difiere del directorio de compilación (o el valor establecido al compilar).

1: https://www.wikiod.com/es/go/primeros-pasos-con-go#Listado de variables de entorno de Go [2]: https://golang.org/doc/go1.8#gopath

Efervescencia

Otro ejemplo de programas de estilo “Hello World” es FizzBuzz. Este es un ejemplo de una implementación de FizzBuzz. Muy idiomático Entra en juego aquí.

package main

// Simple fizzbuzz implementation

import "fmt"

func main() {
    for i := 1; i <= 100; i++ {
        s := ""       
        if i % 3 == 0 {
            s += "Fizz"
        }
        if i % 5 == 0 {
            s += "Buzz"
        }
        if s != "" {
            fmt.Println(s) 
        } else {
            fmt.Println(i) 
        }
    }
}

Patio de juegos

Listado de variables de entorno de Go

Las variables de entorno que afectan a la herramienta go se pueden ver mediante el comando go env [var ...]:

$ go env
GOARCH="amd64"
GOBIN="/home/yourname/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/yourname"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build059426571=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

Por defecto, imprime la lista como un script de shell; sin embargo, si se dan uno o más nombres de variables como argumentos, imprime el valor de cada variable nombrada.

$go env GOOS GOPATH
linux
/home/yourname

Acceso a la documentación sin conexión

Para obtener la documentación completa, ejecute el comando:

godoc -http=:<port-number>

Para un recorrido por Go (muy recomendable para principiantes en el idioma):

go tool tour

Los dos comandos anteriores iniciarán servidores web con documentación similar a la que se encuentra en línea aquí y aquí respectivamente.

Para una verificación de referencia rápida desde la línea de comandos, por ejemplo, para fmt.Print:

godoc cmd/fmt Print
# or
go doc fmt Print

La ayuda general también está disponible desde la línea de comandos:

go help [command]

Correr Ir en línea

El patio de juegos Go

Una herramienta Go poco conocida es The Go Playground. Si uno quiere experimentar con Go sin descargarlo, puede hacerlo fácilmente con solo . . .

  1. Visitar Playground en su navegador web
  2. Ingresando su código
  3. Hacer clic en “Ejecutar”

Compartiendo tu código

El Go Playground también tiene herramientas para compartir; si un usuario presiona el botón “Compartir”, se generará un enlace (como [este] (https://play.golang.org/p/v3rrZLwEUC)) que se puede enviar a otras personas para probar y editar.

En acción

El Go Playground en acción