44 lines
554 B
Go
44 lines
554 B
Go
package utils
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func getSubVersions(ver string) []int {
|
|
var vers [4]int
|
|
vv := strings.Split(ver, ".")
|
|
for i, v := range vv {
|
|
vers[i], _ = strconv.Atoi(v)
|
|
}
|
|
return vers[:]
|
|
}
|
|
|
|
// VersionCompare
|
|
func VersionCompare(a, b string) int {
|
|
|
|
aa := getSubVersions(a)
|
|
bb := getSubVersions(b)
|
|
|
|
for i := 0; i < len(aa) && i < len(bb); i++ {
|
|
|
|
if aa[i] == bb[i] {
|
|
continue
|
|
}
|
|
|
|
if aa[i] < bb[i] {
|
|
return -1
|
|
}
|
|
|
|
return 1
|
|
}
|
|
|
|
if len(aa) == len(bb) {
|
|
return 0
|
|
}
|
|
if len(aa) < len(bb) {
|
|
return -1
|
|
}
|
|
return 1
|
|
}
|