Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Go Modules creando nuestro primer módulo en Go

40/42
Recursos

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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

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

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.

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{}, ""
	}

}

No se olviden :

git config --global init.defaultBranch main

Para que por default inicialicen con la rama main