最近开始学 go ,就用 go 刷 leetcode ,竟然没有 min max 函数,真的非常蛋疼
连标准库功能一点都不丰富的 C++都有内置的 min 和 max 呢
虽然 go 现在也有泛型了,但是直接用泛型写一个 min max 也是不行的
没有直接支持 > <
比如下面这个就是不合法的
func max[T comparable](a, b T) T {
if a > b {
return a
}
return b
}
还得再引入一个包
import (
"golang.org/x/exp/constraints"
)
func max[T constraints.Ordered](a, b T) T {
if a > b {
return a
}
return b
}
所以这么设计的意义在哪里,很怪很怪,还有什么流行的语言没有内置 min 和 max 吗?
C 也没有 max 和 min ,但是人家好歹可以用宏一行写一个,go 就不行