No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
15H
37M
1S

Go Modules creando nuestro primer m贸dulo en Go

40/42
Recursos

Aportes 9

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

si ponen

aparece todo el menu de ayuda de mod

go help mod

Si quieren que go verifique en que lineas y archivos se llama a librerias externas y evitar corrupci贸n en los archivos

go mod tidy

este generar谩 un archivo llamado go.sum y tendra el resgistro codificado de las librerias usadas, en que archivos y lineas se ha usado

go mod init repository-url
Genera un archivo que define el modulo

No entend铆 le ped铆 ayuda al Chat GTP y pude entender esta clase:

1.- Crea un directorio: Lo primero que debes hacer es crear un directorio para el m贸dulo que vas a crear. Este directorio debe tener un nombre que identifique el m贸dulo. Por ejemplo, si est谩s creando un m贸dulo para manejar fechas, podr铆as llamar al directorio 鈥渇echa鈥.

2.- Crea un archivo go.mod: Dentro del directorio que creaste en el paso anterior, debes crear un archivo llamado go.mod. Este archivo es el que va a contener la informaci贸n sobre el m贸dulo que est谩s creando, como el nombre, la versi贸n, las dependencias, entre otros.

3.- Define el nombre y la versi贸n del m贸dulo: En el archivo go.mod, debes especificar el nombre y la versi贸n del m贸dulo que est谩s creando. Para hacer esto, escribe el siguiente comando en el archivo:

module nombre-del-modulo/v1.0.0

  • Reemplaza 鈥渘ombre-del-modulo鈥 con el nombre que elegiste para el m贸dulo y 鈥渧1.0.0鈥 con la versi贸n inicial del m贸dulo.

4.- Agrega las dependencias: Si tu m贸dulo depende de otros paquetes o m贸dulos, debes agregarlos al archivo go.mod. Para hacer esto, escribe el siguiente comando en el archivo:

require (nombre-del-paquete/v1.0.0)

  • Reemplaza 鈥渘ombre-del-paquete鈥 con el nombre del paquete que est谩s agregando y 鈥渧1.0.0鈥 con la versi贸n del paquete.

5.- Crea los archivos del m贸dulo: Ahora debes crear los archivos que van a conformar el m贸dulo que est谩s creando. Por ejemplo, si est谩s creando un m贸dulo para manejar fechas, podr铆as crear un archivo llamado 鈥渇echa.go鈥 que contenga el c贸digo para manejar fechas.

6.- Exporta las funciones y estructuras del m贸dulo: Para que otras personas puedan utilizar tu m贸dulo, debes exportar las funciones y estructuras que has creado. Para hacer esto, debes nombrar las funciones y estructuras con una letra may煤scula en la primera letra del nombre. Por ejemplo, si tienes una funci贸n llamada 鈥渃alcularEdad鈥, deber铆as nombrarla como 鈥淐alcularEdad鈥.

7.- Publica el m贸dulo: Una vez que has creado el m贸dulo y has exportado las funciones y estructuras, debes publicarlo en un repositorio para que otras personas puedan utilizarlo. Puedes publicarlo en un repositorio de Git, como GitHub o GitLab, o en un repositorio de Go, como el Registro de Paquetes de Go.

隆Listo! Con estos pasos, has creado tu propio m贸dulo en Go. Recuerda que para utilizarlo en otros proyectos, debes importarlo en el archivo go.mod de ese proyecto.

Ser铆a bueno ahondar un poco m谩s en qu茅 prop贸sito cumplen los m贸dulos.

Al crear un paquete a trav茅s de m贸dulos, no es necesario tener un main porque este paquete ser谩 utilizado por otro programa con su propio punto de inicio. Al no tener main, el paquete requerir谩 de nombre espec铆fico y no main.

No se olviden :

git config --global init.defaultBranch main

Para que por default inicialicen con la rama main

package mycalculator

import (
	"bufio"
	"fmt"
	"os"
	"regexp"
	"strconv"
)

type calc struct {
	e1 int
	e2 int
}

func (self calc) operate(operador string) int {
	operador1 := self.e1
	operador2 := self.e2

	var resultado int

	switch operador {
	case "+":
		resultado = operador1 + operador2
	case "-":
		resultado = operador1 - operador2
	case "*":
		resultado = operador1 * operador2
	case "/":
		if operador2 == 0{
			fmt.Println("Error: Division entre cero")
			return 0
		}
		resultado = operador1 / operador2
	default:
		fmt.Println("Operador no aceptado")
		resultado = 0
	}

	return resultado
}

func parsear(entrada string) int {
	operador, _ := strconv.Atoi(entrada)
	return operador
}

func leerEntrada() string {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()

	return scanner.Text()
}

func getOperands(entrada string) ( calc, string ){
	regex := regexp.MustCompile(`^(\d+)([\+\-\*\/])(\d+)$`)

	//entrada := leerEntrada()

	if regex.Match([]byte(entrada)) {
		entrada1 := parsear(regex.ReplaceAllString(entrada, "$1"))
		operador := regex.ReplaceAllString(entrada, "$2")
		entrada2 := parsear(regex.ReplaceAllString(entrada, "$3"))

		c := calc{e1: entrada1, e2: entrada2}
		//toPrint := c.operate(operador)
		return c, operador
		//fmt.Println(toPrint)
	} else {
		return calc{}, ""
	}

}

Here is my proyect

PlatziGoCalculator