golang在两个uint值上使用math.max的正确方法是什么?

Buf*_*lls 9 go

这就是我所做的,它非常难看.

什么是math.Max2 uint的正确方法?

vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum)))
Run Code Online (Sandbox Code Playgroud)

Jam*_*dge 10

math.Max存在的主要原因是确保正确处理IEEE浮点的一些特殊情况(正无穷大NaN和有符号零).

这些问题与简单整数无关,因此您也可以使用明显的实现.就像是:

if args.Viewnum+1 > vs.curView.Viewnum {
    vs.curView.Viewnum = args.Viewnum+1
}
Run Code Online (Sandbox Code Playgroud)

  • 真的很愚蠢的设计.在我看来,通用的max()函数不是奢侈品.无论如何.谢谢詹姆斯. (32认同)
  • 令人遗憾的是,Golang作为一种现代程序语言并不支持泛型. (4认同)