go语言为什么没有min/max(int, int)函数

golang为什么没有min/max(int, int)函数

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

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

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

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

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

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

https://mrekucci.blogspot.jp/2015/07/dont-abuse-mathmax-mathmin.html

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

  1. 由于float64类型要处理infinity和not-a-number这种值,而他们的处理非常复杂,一般用户没有能力,所有go需要为用户提供系统级别的解决办法。
  2. 对于int/int64类型的数据,min/max的实现非常简单直接,用户完全可以自己实现,例如:
func Min(x, y int64) int64 {
    if x < y {
        return x
    }
    return y
}

结论就是说go希望用户自己来实现如此简单的函数。

那么我的问题是:
因为min/max(int, int)的使用也如此的常见,难道需要用户在每一个自己的项目里面都实现一份min/max的代码吗,为什么不放在系统库例如math里面,方便所有人使用呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,826评论 18 399
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,757评论 3 71
  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,635评论 0 1
  • 出处---Go编程语言 欢迎来到 Go 编程语言指南。本指南涵盖了该语言的大部分重要特性 Go 语言的交互式简介,...
    Tuberose阅读 18,549评论 1 46
  • 诉经佛殿一长天,木香弥漫了浮生。 近来烦事多忧心,如来面前堪负卿。 有情穿过山和水,轻入圣城闺院门。 奈何薄命多不...
    微风细雨_阅读 339评论 2 6