Este artículo siempre sigue la última versión, por lo que se eliminará el contenido obsoleto. Si lo encuentras desactualizado, por favor contáctame si puedes.
ir mod
El siguiente contenido se ha integrado en Goland, por lo que los hermanos que usan Goland pueden escribirgo mod tidy
Introducción a los módulos go
go módulos es una nueva característica de golang 1.11, que se utiliza para gestionar las dependencias de los paquetes en los módulos .
Cómo usar ir mod
- Inicializar el módulo
go mod init <项目模块名称>
- Manejo de dependencias, según el archivo go.mod
go mod tidy
- Copie el paquete de dependencia en el directorio de proveedores del proyecto.
go mod vendor
Si el paquete está bloqueado (pared), puede usar este comando y luego usar go build -mod=vendor para compilar - mostrar dependencias
go list -m all
- mostrar dependencias detalladas
go list -m -json all
- descargar descarga dependiente
importar
importación de ruta completa
importación de una sola línea
import "包名"
importación multilínea
Lo mejor es organizarlos en orden ASCII. (Mi sugerencia es dejar este asunto al IDE) Dejar este asunto mecanizado a la máquina. §(  ̄▽ ̄ )§
import (
"包名"
"包名"
"包名"
)
ejemplo
import (
_ "fmt"
"log"
"os"
)
Solo importa y no usa
Indica que solo se llama e implementa la función de inicialización ( go init function ) de la biblioteca importada, y el escenario de uso es principalmente una conexión de base de datos.
import _ "包名"
ejemplo
import _ "fmt"
Renombrar paquetes importados
Para evitar paquetes importados con el mismo nombre (¿Es normal que diferentes autores tengan el mismo nombre?)(th_th)
impor 新名 "包名"
ejemplo
import (
"crypto/rand"
mrand "math/rand" // 将名称替换为mrand避免冲突
)
El cambio de nombre de los paquetes importados solo afecta al archivo de origen actual. Otros archivos de origen que importan el mismo paquete pueden usar el nombre predeterminado original del paquete importado o cambiar su nombre a un nombre completamente diferente.
No muestre el nombre de la biblioteca, llame al método directamente
El efecto es eliminar el nombre del paquete. En ese momento, no se recomendaba. Es fácil tener el mismo nombre en proyectos grandes. En este momento, el nombre del paquete es una clave para distinguir funciones.
import . "包名"
descargar
有些时候,你需要的包并没有被包含,因此你在写代码时不会出现代码补全;又或者你使用别人的项目发现一片红色,大概率就是你没有下载对应的包。
go get
go get 只用来下载普通的包,安装可执行程序,应该使用 go install
即 go get 现在仅仅只能增减依赖包
In Go 1.18,
go get
will no longer build packages; it will only be used to add, update, or remove dependencies ingo.mod
. Specifically,go get
will always act as if the-d
flag were enabled.
关于 url 可以到 https://pkg.go.dev/ 中直接查询
命令格式
go get url [附加参数]
- url :远程包的地址,如: https://github.com/davyxu/tabtoy
附加参数
使用 go get 时可以配合附加参数显示更多的信息及实现特殊的下载和安装操作,详见下表所示。
标记名称 | 描述 |
---|---|
-d | 让命令程序只执行下载动作,而不执行安装动作。 |
-f | 仅在使用-u标记时才有效。该标记会让命令程序忽略掉对已下载代码包的导入路径的检查。如果下载并安装的代码包所属的项目是你从别人那里Fork过来的,那么这样做就尤为重要了。 |
-fix | 让命令程序在下载代码包后先执行修正动作,而后再进行编译和安装。 |
-t | 让命令程序同时下载并安装指定的代码包中的测试源码文件中依赖的代码包。 |
-u | Deje que el comando use la red para actualizar los paquetes de código existentes y sus dependencias. De forma predeterminada, este comando solo descargará paquetes de código que no existen localmente desde la red y no actualizará los paquetes de código existentes. |
ir a instalar
Este comando se usa para compilar e instalar los paquetes de código especificados y sus paquetes dependientes. Cuando los paquetes dependientes del paquete de código especificado no se han compilado ni instalado, este comando procesará primero los paquetes dependientes. Al igual que con go buil
el comando d, go install
los argumentos del paquete de código pasados al comando deben proporcionarse como rutas de importación.
Además, go build
la mayoría de las banderas para comandos también se pueden usar para go install
comandos. De hecho, go install
el comando solo go build
hace una cosa más que el comando, a saber: instalar el archivo de resultados compilado en el directorio especificado.