Instale el entorno de desarrollo de lenguaje go en ubuntu
alrededores
VirtualBox
Ubuntu 18.04
Instalar golang
Utilice la herramienta de administración de paquetes del sistema para instalar golang. La ventaja de esto es que incluso si no es la última versión, no afectará el uso normal.
$ sudo apt-get install golang
Una vez completada la instalación, use el comando go version para ver la versión
$ go version
Crear espacio de trabajo
Crear espacio de trabajo
El código Go debe colocarse en el espacio de trabajo. En realidad, es un directorio que contiene tres subdirectorios:
- El directorio src contiene archivos fuente de Go, que están organizados en paquetes (cada directorio corresponde a un paquete),
- El directorio pkg contiene objetos de paquete,
- El directorio bin contiene comandos ejecutables
Utilice el comando mkdir para crear un espacio de trabajo
$ mkdir $HOME/go
Configurar la variable de entorno GOPATH
La variable de entorno GOPATH indica la ubicación de su espacio de trabajo (tenga en cuenta que esta ubicación no puede ser la misma que su directorio de instalación de go)
$ export GOPATH=$HOME/go
Agregue el subdirectorio bin de este espacio de trabajo a su PATH
$ export PATH=$PATH:$GOPATH/bin
Luego realice la configuración
$ source $HOME/.profile
Después de que la configuración sea exitosa, puede usar go env para verificar la configuración
$ go env
Crear ruta de paquete
Cree una carpeta en el espacio de trabajo para almacenar sus archivos fuente
$ mkdir -p $GOPATH/src/github.com/user
¡Crea Hello World!
Primero seleccione la ruta del paquete y luego cree el archivo en la carpeta correspondiente
$ mkdir $GOPATH/src/github.com/user/hello
Cree un archivo
hello.go hello.go en el directorio hello
package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}
Luego ingrese al directorio hello para ejecutar el archivo
$ go run hello.go
Instale las herramientas y complementos necesarios
Instalar git
$ sudo apt-get install git
Descargar código fuente
# 创建文件夹(该命令要加-p,因为文件目录还不存在)
$ mkdir -p $GOPATH/src/golang.org/x/
# 下载源码
$ go get -d github.com/golang/tools
# copy
$ cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
Kit de instalacion
$ go install golang.org/x/tools/go/buildutil
Instale y ejecute el programa de saludo
$ go install github.com/user/hello
Este comando creará un archivo binario ejecutable llamado hello, lo instalará en el archivo bin del espacio de trabajo y creará un comando hello.
Nota: Cuando cambie su archivo, debe reconstruir su programa, de lo contrario será ejecutable El binario sigue siendo el archivo anterior y el resultado de la ejecución del archivo no cambiará
Instalar go tour
$ go get github.com/Go-zh/tour/gotour
$ gotour
Mi primer paquete y prueba
Tu primera biblioteca
Escriba una biblioteca propia y deje que el programa de saludo la use.
Seleccione la ruta del paquete y cree un directorio
$ mkdir $GOPATH/src/github.com/user/stringutil
Cree el archivo reverse.go en el directorio
// stringutil 包含有用于处理字符串的工具函数。
package stringutil
// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
Construya el archivo con el comando go build
$ go build github.com/user/stringutil
Modifique el programa de saludo anterior y use la biblioteca que acaba de crear
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
Reinstale el archivo de saludo con go install
$ go install github.com/user/hello
prueba
Go tiene un marco de prueba ligero, que consta del comando go test y el paquete de prueba.
Puede escribir una prueba creando un archivo cuyo nombre termine en _test.go y contenga funciones llamadas TestXXX y firmadas como func (t * testing.T). El marco de prueba ejecutará cada una de estas funciones; si la función llama a una función que indica falla, como t.Error o t.Fail, la prueba indica falla.
Podemos agregar pruebas para stringutil creando el archivo $ GOPATH / src / github.com / user / stringutil / reverse_test.go
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世 ,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
Use go test para probar
$ go test github.com/user/stringutil
Resumen del problema
1. Preste atención a la exactitud de la ruta al crear el espacio de trabajo y los archivos de directorio. Si la ruta no existe al crear el archivo, agregue el parámetro -p
. 2. Cada vez que modifique el programa, debe reinstalar la instrucción temporal para actualizar la instrucción temporal. De lo contrario, aún ejecute el archivo ejecutable anterior