这就是我所做的,它非常难看。
将math.Max
用于2 uint的正确方法是什么?
vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum)))
答案 0 :(得分:10)
math.Max
存在的主要原因是确保正确处理IEEE浮点的某些特殊情况(正无穷大,NaN
和有符号零)。
这些问题与简单整数无关,因此您也可以使用明显的实现。类似的东西:
if args.Viewnum+1 > vs.curView.Viewnum {
vs.curView.Viewnum = args.Viewnum+1
}
答案 1 :(得分:0)
尽管问题很老,也许this package将节省某人的时间和精力。通常可以通过go get
并通过URL导入获取它。
用法:
import (
"fmt"
"<Full URL>/go-imath/ix" // Functions for int type
)
...
fmt.Println(ix.Max(100, 152)) // Output: 152
fmt.Println(ix.Maxs(234, 55, 180)) // Output: 234
fmt.Println(ix.MaxSlice([]int{2, 29, 8, -1})) // Output: 29