0
点赞
收藏
分享

微信扫一扫

GoLang 版本号大小对比


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
}

举报

相关推荐

0 条评论