Buscar..


Introducción

El comando go es un programa de línea de comandos que permite la administración del desarrollo de Go. Permite la creación, ejecución y prueba de código, así como una variedad de otras tareas relacionadas con Go.

Corre

go run ejecutará un programa sin crear un archivo ejecutable. Sobre todo útil para el desarrollo. run solo ejecutará paquetes cuyo nombre de paquete sea main .

Para demostrarlo, usaremos un ejemplo simple de Hello World main.go :

package main

import fmt

func main() {
    fmt.Println("Hello, World!")
}

Ejecutar sin compilar en un archivo:

go run main.go

Salida:

Hello, World!

Ejecutar varios archivos en el paquete

Si el paquete es principal y se divide en varios archivos, uno debe incluir los otros archivos en el comando de run :

go run main.go assets.go

Ir a construir

go build compilará un programa en un archivo ejecutable.

Para demostrarlo, usaremos un ejemplo simple de Hello World main.go:

package main

import fmt
    
func main() {
    fmt.Println("Hello, World!")
}

Compila el programa:

go build main.go

build crea un programa ejecutable, en este caso: main o main.exe . A continuación, puede ejecutar este archivo para ver la salida Hello, World! . También puede copiarlo en un sistema similar que no tenga instalado Go, hacerlo ejecutable y ejecutarlo allí.

Especifique el sistema operativo o la arquitectura en la construcción:

Puede especificar qué sistema o arquitectura construirá modificando el env antes de build :

env GOOS=linux go build main.go # builds for Linux
env GOARCH=arm go build main.go # builds for ARM architecture

Construir múltiples archivos

Si su paquete se divide en varios archivos y el nombre del paquete es main (es decir, no es un paquete importable ), debe especificar todos los archivos para compilar:

go build main.go assets.go # outputs an executable: main

Construyendo un paquete

Para construir un paquete llamado main , simplemente puede usar:

go build . # outputs an executable with name as the name of enclosing folder

Ir limpio

go clean limpiará todos los archivos temporales creados al invocar go build en un programa. También limpiará los archivos sobrantes de Makefiles.

Ir fmt

go fmt formateará el código fuente de un programa de una manera ordenada e idiomática que sea fácil de leer y entender. Se recomienda utilizar go fmt en cualquier fuente antes de enviarlo para que el público lo vea o se comprometa con un sistema de control de versiones, para facilitar la lectura.

Para formatear un archivo:

go fmt main.go

O todos los archivos en un directorio:

go fmt myProject

También puede usar gofmt -s ( no go fmt ) para intentar simplificar cualquier código que pueda.

gofmt ( no go fmt ) también se puede usar para refactorizar el código. Entiende a Go, por lo que es más poderoso que usar una simple búsqueda y reemplazo. Por ejemplo, dado este programa ( main.go ):

package main

type Example struct {
    Name string
}

func (e *Example) Original(name string) {
    e.Name = name
}

func main() {
    e := &Example{"Hello"}
    e.Original("Goodbye")
}

Puede reemplazar el método Original con Refactor con gofmt :

gofmt -r 'Original -> Refactor' -d main.go

Lo que producirá el diff:

-func (e *Example) Original(name string) {
+func (e *Example) Refactor(name string) {
     e.Name = name
 }
 
 func main() {
     e := &Example{"Hello"}
-    e.Original("Goodbye")
+    e.Refactor("Goodbye")
 }

Ir a buscar

go get descarga los paquetes nombrados por las rutas de importación, junto con sus dependencias. A continuación, instala los paquetes nombrados, como 'instalar'. Get también acepta banderas de compilación para controlar la instalación.

ve a github.com/maknahar/phonecountry

Al retirar un nuevo paquete, get crea el directorio de destino $GOPATH/src/<import-path> . Si el GOPATH contiene varias entradas, get usa la primera. Del mismo modo, instalará binarios compilados en $GOPATH/bin .

Al retirar o actualizar un paquete, busque una rama o etiqueta que coincida con la versión instalada localmente de Go. La regla más importante es que si la instalación local está ejecutando la versión "go1", obtenga búsquedas de una rama o etiqueta llamada "go1". Si no existe tal versión, recupera la versión más reciente del paquete.

Cuando se utiliza go get , el indicador -d hace que se descargue pero no se instala el paquete dado. La bandera -u le permitirá actualizar el paquete y sus dependencias.

Nunca obtenga verificaciones o actualizaciones de códigos almacenados en directorios de proveedores.

Ve env

go env [var ...] imprime go información del entorno.

Por defecto imprime toda la información.

$go env

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/vikashkv/work"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.7.4_1/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.7.4_1/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xf/t3j24fjd2b7bv8c9gdr_0mj80000gn/T/go-build785167995=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

Si uno o más nombres de variables se dan como argumentos, imprime el valor de cada variable nombrada en su propia línea.

$go env GOOS GOPATH

darwin
/Users/vikashkv/work


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow