Módulo
Al leer esta página, deberías poder entender:
- Los términos básicos que definen un proyecto.
- Cómo crear un proyecto.
- La estructura básica del modulo y del programa.
- Cómo compilar y ejecutar tu primer programa.
El módulo es la unidad principal de versionado (proyecto) y distribución en Go. Dentro de un módulo hay uno o más paquetes. Tu código importa paquetes, que pueden estar en tu mismo módulo o en otros módulos (propios o de terceros).
Veamos como se crea tu primer proyecto:
| |
| |
| |
| |
Note
La ruta
example/hellopor lo general debe ser la ruta del repositorio. Por ejemplo, si usas GitHub debe quedar de la siguiente forma:github.com/example/hello.
Un módulo se distingue por contener el archivo go.mod. Dentro de él se define las características principales cómo la ruta & nombre, versión de go y dependencias. Para este ejemplo super simple se genero de la siguiente forma:
| |
Cómo puedes ver el nombre, la primera línea contiene él la ruta y el nombre del módulo module example/hello, la siguiente línea la version de go que se usó para compilar.
Con tu editor de texto, crea el archivo principal main.go y agrega el siguiente código:
| |
Cómo podrás observar del código anterior, el package es main, la función principal es main() y esto indica el punto de inicio del programa, si no está definida se producirá un error especifico si es por package o por función, cómo por ejemplo; package ... is not a main package. o function main is undeclared in the main package.
Para ejecutarlo y probar el código escribe el siguiente comando:
| |
| |
Para generar el binario escribe el siguiente comando:
| |
Se crea un binario con el nombre del módulo hello y para ejecutarlo escribir ./hello.
Important
Si compilas en macOS, tu codigo solo funcionará en macOS. Si compulas en Linux o en Windows es igual. Debes crear un binario por sistema operativo y arquitectura del procesador.
El proyecto GoReleaser te permite simplificar la creación de binarios dentro de tus pipes (CI/CD) cuando haces una release.
Esto ya es un poco más avanzado, pero en caso de usar un módulo externo en local porque estamos programando en los dos módulos la vez, podemos modificar go.mod para que lo contemple de la siguiente forma:
| |
Recuerda que debes revertir el reemplazo cuando hayas finalizado el desarrollo del módulo externo y hayas hecho una release del módulo externo:
| |