Golang 的泛型如下所示
func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {
var s V
for _, v := range m {
s += v
}
return s
}
其中 K 后面的 comparable,V 后面的 int64 | float64 就是约束
Golang 的泛型如下所示
func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {
var s V
for _, v := range m {
s += v
}
return s
}
其中 K 后面的 comparable,V 后面的 int64 | float64 就是约束
15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
c++20引入了concept,见:
https://en.cppreference.com/w...
https://zhuanlan.zhihu.com/p/...
20之前的话,用enable_if、void_t等工具控制选择的特化模板即可。