相关疑难解决方法(0)

如何编写接受任何数字类型的通用函数?

来自 JavaScript 和 TypeScript,我想尝试一下 Go 并制作一个简单的计算器。既然 int 和 float 之间存在差异,那么编写接受任意数字的函数的首选方法是什么?

例如:

package main

func add(a float64, b float64) float64 {
  return a + b;
}

func main() {
  a := 1;
  b := 2;
  fmt.Println(add(1, 2)); // 3
  fmt.Println(add(a, b)); // Cannot use a (type int) as type float64 in argument to add
  fmt.Println(add(1.5, 3.2)); // 4.7
  fmt.Println(add(2.5, 2)); // 4.5
}
Run Code Online (Sandbox Code Playgroud)

我是否需要将所有内容都转换为浮点型(因为它“覆盖”了 int 范围),还是为每种类型创建一个单独的函数,例如addInt(a int, b int) intand addFloat(a float64, b float64) float64?或者可能有一种更优雅的方式吗?

generics go

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

generics ×1

go ×1