Page cover

🎃Modules

¿Qué es un módulo en Go?

Un módulo en Go es una colección de paquetes Go que se utilizan juntos como una unidad lógica. Los módulos permiten especificar y gestionar las dependencias de una aplicación Go de forma más precisa y confiable. Cada módulo tiene su propio archivo go.mod que describe las dependencias y la versión de cada paquete utilizado.

Por otro lado, un módulo en Go es una colección de paquetes Go en un arbol de directorio con un fichero go.mod en el directorio principal.

Pasos para crear un Go Module ->

go mod init <module name>

Con el comando anterior debería haberse creado un fichero llamado go.mod que contiene todas las dependencias que utilicemos en el proyecto.

Al haber creado un módulo todos los comandos que lancemos como, go build, test, run, fmt, etc se harán sobre todos los paquetes del módulo.

Importar paquetes dentro de nuestro módulo ->

Para importar módulos propios tenemos que respetar obviamente las reglas para crear paquetes. Además en el import se debe poner la ruta absoluta hacia el módulo que vayamos a importar.

Para importar un paquete dentro de nuestro módulo hay que escribir el nombre que le hayamos dado al módulo seguido de la ruta hacia el paquete:

Siguiendo con el ejemplo, creemos un módulo llamado webapp:

go mod init webapp

Creamos un archivo main.go para importar los modelos creados anteriormente.

Los imports utilizan rutas absolutas**. Siendo el origen el nombre del módulo.

package main
//Al estar en package name hay que importar los paquetes
//desados

import (
    "webapp/models" //Notar como se usa el nombre del módulo seguido de la ruta
    //hacia el paquete
)

func main() {
    user := models.User{"Foo", 22}
    chatroom := models.ChatRoom{"GoDev", nil}
}

Agregar módulos de terceros ->

Para agregar una dependencia con un módulo de terceros se utiliza el comando:

go get <url to module>

Y se agregaría la información de esta dependencia en el fichero go.mod

Last updated