go版本号大小对比,比如:1.0.0 < 1.0.1
思路:按照 .(点符号)分割,分割后将其转成整型,然后再就行对比。
// 版本号对比使用【版本号 = 第一位*10000 + 第二位*100 + 第三位】
// 一般版本号是3位,如果大于三位就需要在此进行扩展
func FormatAppVersion(versionNo string) int {
if versionNo == "" {
return -1
}
no := 0
nos := strings.Split(versionNo, ".")
if len(nos) != 3 {
return -1
}
for i, n := range nos {
j, err := strconv.Atoi(n)
if err != nil || j >= 100 || j < 0 {
return -1
}
no += j * int(pow(100, (2-i)))
}
return no
}
//x的n次方
func pow(x int, n int) int {
if x == 0 || n < 0 {
return 0
}
if n == 0 {
return 1
}
result := 1
for i := 0; i < n; i++ {
result *= x
}
return result
}
标签:return,no,版本号,GoLang,int,result,100,对比
From: https://blog.51cto.com/u_16085147/6218173