go float64 比较_Go语言为什么没有 Min/Max(int, int) 函数?

Go中文网导读:你在使用过程中是否有过这样的困惑,或者你可能使用的方式就是错误的!

817f3853d1ea15b865ac3b05bcedacc8.png

现象

我们知道Go语言math包里面定义了min/max函数,但是是float64类型的,而并没有整数类型的min/max。

Go语言的math包里面定义的min/max函数签名如下:

math.Min(float64, float64) float64math.Max(float64, float64) float64

事实上我们更经常要比较的是两个整数的场景:

math.Min/Max(int, int), ormath.Min/Max(int64, int64)

解释

那么,为什么Go语言不提供整数类型的min/max这两个函数呢? 下面的这篇文章给了一个解释:

「不要乱用 math 包的 Max/Min」,链接:https://mrekucci.blogspot.jp/2015/07/dont-abuse-mathmax-mathmin.html

总结起来,主要理由是说,

  1. 由于float64类型要处理infinity和not-a-number这种值,而它们的处理非常复杂,一般用户处理不好,所有
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值