package main import ( "regexp" "strconv" "strings" ) var versionSplitRegex = regexp.MustCompile("([0-9]+|[a-z]+)") func splitVer(ver Version) []string { return versionSplitRegex.FindAllString(ver.String(), -1) } func SimpleCompareVer(ver1 Version, ver2 Version) int { ver1_split := splitVer(ver1) ver2_split := splitVer(ver2) for i, item := range ver1_split { if i >= len(ver2_split) { return 1 } item2 := ver2_split[i] item_int, err := strconv.ParseInt(item, 10, 32) item2_int, err2 := strconv.ParseInt(item2, 10, 32) if err == nil && err2 == nil { if item_int > item2_int { return 1 } if item_int == item2_int { continue } if item_int < item2_int { return -1 } } if c := strings.Compare(item, ver2_split[i]); c != 0 { return c } } return 0 }