golang:比较版本号大小
Posted IGuoSJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:比较版本号大小相关的知识,希望对你有一定的参考价值。
package main
import (
"fmt"
"strings"
)
var (
VersionBig = 1
VersionSmall = 2
VersionEqual = 0
)
func compareStrVer(verA, verB string) int
verStrArrA := spliteStrByNet(verA)
verStrArrB := spliteStrByNet(verB)
lenStrA := len(verStrArrA)
lenStrB := len(verStrArrB)
if lenStrA != lenStrB
panic("")
return compareArrStrVers(verStrArrA, verStrArrB)
func compareArrStrVers(verA, verB []string) int
for index, _ := range verA
littleResult := compareLittleVer(verA[index], verB[index])
if littleResult != VersionEqual
return littleResult
return VersionEqual
func compareLittleVer(verA, verB string) int
bytesA := []byte(verA)
bytesB := []byte(verB)
lenA := len(bytesA)
lenB := len(bytesB)
if lenA > lenB
return VersionBig
if lenA < lenB
return VersionSmall
return compareByBytes(bytesA, bytesB)
func compareByBytes(verA, verB []byte) int
for index, _ := range verA
if verA[index] > verB[index]
return VersionBig
if verA[index] < verB[index]
return VersionSmall
return VersionEqual
func spliteStrByNet(strV string) []string
return strings.Split(strV, ".")
func main()
versionA := "1.2.3.54"
versionB := "1.2.3.54"
fmt.Println(compareStrVer(versionA, versionB))
以上是关于golang:比较版本号大小的主要内容,如果未能解决你的问题,请参考以下文章
php 版本号 整数化 mysql存储入库 比较大小版本处理类,提供版本与数字互相转换