golang在两个uint值上使用math.max的正确方法是什么?
这就是我做的,非常丑陋 使用golang在两个uint值上使用math.max的正确方法是什么?,go,Go,这就是我做的,非常丑陋 使用math.Max进行两个uint的正确方法是什么 vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum))) 存在math.Max的主要原因是为了确保正确处理IEEE浮点的一些特殊情况(正负无穷大、NaN和有符号零) 这些问题与简单整数无关,因此您最好使用显而易见的实现。比如: if args.Viewnum+1 > vs.curView.Vi
math.Max
进行两个uint的正确方法是什么
vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum)))
存在math.Max的主要原因是为了确保正确处理IEEE浮点的一些特殊情况(正负无穷大、
NaN
和有符号零)
这些问题与简单整数无关,因此您最好使用显而易见的实现。比如:
if args.Viewnum+1 > vs.curView.Viewnum {
vs.curView.Viewnum = args.Viewnum+1
}
虽然这个问题很老了,但也许可以节省一些人的时间和精力。与往常一样,可以通过
go-get
和通过URL导入来获取
用法:
导入(
“fmt”
“/go imath/ix”//int类型的函数
)
...
fmt.Println(ix.Max(100152))//输出:152
fmt.Println(ix.Maxs(234,55,180))//输出:234
fmt.Println(ix.MaxSlice([]int{2,29,8,-1}))//输出:29
不幸的是,您必须为UINT编写自己的版本,因为我担心这是一个愚蠢的设计。在我看来,拥有一个通用的max()函数并不是一件奢侈的事情。无论如何谢谢James。当Go获得某种形式的泛型时,也许我们会看到。很遗憾,作为现代编程语言的Golang不支持泛型。