golang计算器

发布时间:2024-12-23 01:50:19

Go语言计算器

Go语言是一款由Google开发的开源编程语言,它以其简洁、高效的特点受到了越来越多开发者的青睐。本文将介绍如何使用Go语言编写一个简单的计算器。

实现基本运算功能

首先,我们需要定义一个Calculator结构体,通过该结构体我们可以实现加减乘除等基本运算功能。

package main

import "fmt"

type Calculator struct {
}

func (c Calculator) Add(a, b float64) float64 {
    return a + b
}

func (c Calculator) Subtract(a, b float64) float64 {
    return a - b
}

func (c Calculator) Multiply(a, b float64) float64 {
    return a * b
}

func (c Calculator) Divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("除数不能为0")
    }

    return a / b, nil
}

func main() {
    calculator := Calculator{}
    result := calculator.Add(1, 2)
    fmt.Println(result)
}

以上代码中,我们定义了一个Calculator结构体,并实现了Add、Subtract、Multiply和Divide等基本运算函数。这里的main函数演示了如何使用Calculator进行加法运算,并打印结果。

添加用户交互

为了更好地提供用户服务,我们可以通过命令行交互的方式获取用户输入,并输出相应的计算结果。

package main

import (
    "fmt"
    "os"
    "strconv"
)

func main() {
    args := os.Args
    if len(args) < 4 {
        fmt.Println("Usage: calculator [operation] [number1] [number2]")
        os.Exit(1)
    }

    operator := args[1]
    number1, err := strconv.ParseFloat(args[2], 64)
    if err != nil {
        fmt.Println("Invalid number1")
        os.Exit(1)
    }

    number2, err := strconv.ParseFloat(args[3], 64)
    if err != nil {
        fmt.Println("Invalid number2")
        os.Exit(1)
    }

    calculator := Calculator{}
    switch operator {
    case "+":
        result := calculator.Add(number1, number2)
        fmt.Println(result)
    case "-":
        result := calculator.Subtract(number1, number2)
        fmt.Println(result)
    case "*":
        result := calculator.Multiply(number1, number2)
        fmt.Println(result)
    case "/":
        result, err := calculator.Divide(number1, number2)
        if err != nil {
            fmt.Println(err)
        } else {
            fmt.Println(result)
        }
    default:
        fmt.Println("Invalid operator")
    }
}

以上代码中,我们通过os包获取用户在命令行中输入的参数,包括操作符和两个数字。然后根据操作符调用对应的计算函数,并输出结果。

错误处理

在实际应用中,我们需要考虑到用户可能输入错误的情况,比如除数为0。在上面的代码中,我们通过Divide函数返回了一个error类型的值来表示计算过程中出现错误。如果用户输入的除数为0,则会返回一个错误并在main函数中进行处理。

测试

为了保证程序的准确性,我们可以通过编写测试用例来对Calculator的各个函数进行测试。

package main

import (
    "testing"
)

func TestAdd(t *testing.T) {
    calculator := Calculator{}
    result := calculator.Add(1, 2)
    if result != 3 {
        t.Error("Add function error")
    }
}

// 测试其他函数...

以上代码中,我们使用Go语言的testing包编写了一个简单的测试函数TestAdd,该函数对Calculator的Add函数进行了测试。运行测试用例时,我们可以通过命令go test来执行。

总结

通过以上的步骤,我们成功地使用Go语言实现了一个简单的计算器,并为其添加了命令行交互和错误处理功能。通过编写测试用例,我们可以提高代码的可靠性和稳定性。Go语言作为一种新兴的编程语言,具有良好的性能和强大的并发能力,适用于各种应用场景。

相关推荐