Di solución con expresiones regulares para validar la entrada y obtener los datos. Aplicando todo lo que aprendí en este gran curso de Expresiones Regulares.
func main() {
fmt.Println("Type an operation (e.g 2+2, 5*5, 8-9, 7/8)")
regex := regexp.MustCompile(`^(\d+)([\+\-\*\/])(\d+)$`)
input := readInput()
fmt.Println()
if regex.Match([]byte(input)) {
c := calc{}
valueone := parse(regex.ReplaceAllString(input, "$1"))
operation := regex.ReplaceAllString(input, "$2")
valuetwo := parse(regex.ReplaceAllString(input, "$3"))
fmt.Println(c.operate(valueone, operation, valuetwo))
} else {
fmt.Println("The input is not valid")
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?