CompareTo
方法 · Version
go
func (x *Version) CompareTo(target *Version) int📖 说明
CompareTo 比较两个版本号
该方法按以下顺序比较两个版本号:
- 首先比较版本号数字部分(VersionNumbers 数组,如 [1,2,3],逐段比较,非仅主版本号)
- 其次比较后缀(空后缀=正式版 > 有后缀=预发布版)
- 然后比较发布时间
- 最后比较原始版本号字符串
注释与实现
源码 doc 注释把第 2、3 步写成「发布时间→后缀」、第 1 步写成「主版本号数字部分」,但实现实际是「后缀→发布时间」,且第 1 步比较的是整个 VersionNumbers 数组而非仅主版本号。以本文档为准,详见 比较优先级。
参数
target:要比较的目标版本对象
返回
int:如果当前版本小于目标版本,返回-1;如果相等,返回0;如果大于,返回1
go
v1 := versions.NewVersion("1.0.0")
v2 := versions.NewVersion("1.1.0")
switch v1.CompareTo(v2) {
case -1:
fmt.Println("v1 < v2")
case 0:
fmt.Println("v1 = v2")
case 1:
fmt.Println("v1 > v2")
}同类方法(点击展开)
第 1 组
Version.IsValidVersion.BuildGroupIDVersion.StringVersion.IsPrereleaseVersion.IsStableVersion.IsDevVersion.IsAlphaVersion.IsBeta
第 2 组
Version.IsRCVersion.IsSnapshotVersion.IsMilestoneVersion.IsNightlyVersion.IsFinalVersion.IsGAVersion.IsPreVersion.IsRelease
第 3 组
Version.IsSPVersion.IsPostVersion.SatisfiesVersion.MatchesVersion.IsNewerThanVersion.IsOlderThanVersion.EqualsVersion.IsBetween
第 4 组
源码位置
定义于 version.go