Go语言简易计算器核心是解析表达式并安全执行四则运算:用正则提取数字与操作符,strconv.ParseFloat转数值,switch处理运算,除零和非法输入均报错,支持小数、循环交互及空格/大小写预处理。
在 Go 语言中构建一个简单计算器,核心是解析用户输入的表达式并安全执行四则运算。不需要复杂框架,用标准库就能完成,重点在于输入处理、运算优先级和错误防护。
表达式使用 fmt.Scanln 或 bufio.Scanner 获取一行输入,例如 "5 + 3" 或 "10 * 2 - 4"。建议按空格分割(适合初学),但要注意多位数和负数场景。更稳妥的做法是用正则提取数字与操作符:
用 strconv.ParseFloat 转换字符串为 float64,捕获错误避免 panic:
把核心逻辑抽成函数,便于测试和扩展:
func Calculate(a, b float64, op string) (float64, error) {
switch op {
case "+": return a + b, nil
case "-": return a - b, nil
case "*": return a * b, nil
case "/":
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
default:
return 0, fmt.Errorf("unsupported operator: %s", op)
}
}主函数中调用该函数,并统一处理错误输出。