Skip to content

比较优先级

关键

Version.CompareTo四级优先级 逐级判定:VersionNumbers → Suffix → PublicTime → Raw

📐 判定流程

每一级只在前几级都判定为「相等」时才进入下一级——任一级决出不同即立即返回,不再往下走。

🔍 示例

AB结果命中级
1.2.01.3.0A < BVersionNumbers(2 < 3)
1.0.0-rc11.0.0A < BSuffix(rc=400 < 稳定=500)
1.0.01.0.0-post1A < BSuffix(稳定=500 < post=800,反直觉见后缀权重
1.0.0-beta11.0.0-beta2A < BSuffix(子版本号 1 < 2)
1.0.0v1.0.0A == B前缀不参与,Raw 在前三者相同时…

注意

1.0.0v1.0.0:数字段相同、后缀都为空、PublicTime 都是零值,最终落到 Raw 字典序"1.0.0" < "v1.0.0"('1' < 'v')。但语义上二者等价——业务里若要判等价,用 Equals 或比较 Canonical()

📚 延伸

基于 MIT 协议发布