用go语言实现:编写一个函数 calculate,使用函数变量实现一个简单的计算器。 如:calculate(10, 5, add),表示10+5
时间: 2024-10-12 09:08:18 浏览: 23
在Go语言中,你可以创建一个名为`Calculator`的结构体,包含一些基本的算术操作方法。然后定义一个`calculate`函数接受两个整数和一个操作符作为参数。下面是一个简单的例子:
```go
package main
import "fmt"
// 定义一个结构体,表示一个可以进行加减乘除操作的对象
type Calculator struct {
operation func(int, int) int // 函数变量存储计算方法
}
// 定义运算方法
var (
add Calculator = Calculator{operation: func(a, b int) int { return a + b }}
subtract Calculator = Calculator{operation: func(a, b int) int { return a - b }}
multiply Calculator = Calculator{operation: func(a, b int) int { return a * b }}
divide Calculator = Calculator{operation: func(a, b int) int { if b != 0 { return a / b } else { panic("Division by zero is not allowed.") } }} // 防止除零错误
)
// calculate 函数接收两个整数和一个Calculator实例,执行相应的计算
func calculate(a, b int, calc Calculator) int {
return calc.operation(a, b)
}
func main() {
result := calculate(10, 5, add)
fmt.Println("10 + 5 =", result)
result = calculate(10, 5, subtract)
fmt.Println("10 - 5 =", result)
// ... 更多的计算操作,替换calc为对应的类型
}
```
在这个示例中,`calculate`函数通过传入的`calc`参数动态地选择了哪种运算方法执行。当你需要执行其他类型的运算,只需要改变传递给`calculate`的`Calculator`实例即可。
阅读全文