Documentation ¶
Overview ¶
Package version 是一个通用的版本号解析工具,可以一个版本号字符串解析到一个结构体中。
version 通过 struct tag 的相关定义来解析版本号字符串。包含了以下标签。 - index 该字段对应的的编号,也是默认的解析顺序(0 是入口),只能为整数,唯一; - route 表示当前字段的结束字符,以及对应的需要跳转到的索引值值。 比如以下定义的结构体:
type struct Version { Major int `version:"0,.1,+2"` Minor int `version:"1,.2"` Build string `version:"2"` }
在解析时,首先会拿到索引为 0 的字段,也就是 Major,然后对字符串进行 依次比较,如果碰到符号 `.` ,则将前面的字符串转换成数值保存 Major, 然后跳到索引号为 1 的 Minor,再次对后续的字符串进行依次比较;若碰到 的是字符 `+` 则跳到索引值为 2 的 Build 字段,依次对后续的字符进行比 较;若碰到结尾了,而直接结束。 具体的定义,可参考下自带的 SemVersion。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SemVerCompare ¶
SemVerCompare 比较两个 semver 版本号字符串
func SemVerCompatible ¶
SemVerCompatible 两个 semver 版本号是否兼容
Types ¶
type SemVersion ¶
type SemVersion struct { Major int `version:"0,.1"` Minor int `version:"1,.2"` Patch int `version:"2,+4,-3"` PreRelease string `version:"3,+4"` Build string `version:"4"` }
SemVersion 是 semver 的定义
func (*SemVersion) Compare ¶
func (v *SemVersion) Compare(v2 *SemVersion) int
Compare 比较两个版本号
若相同返回 0,若 v 比较大返回正整数,否则返回负数。
func (*SemVersion) CompareString ¶
func (v *SemVersion) CompareString(ver string) (int, error)
CompareString 将当前对象与一个版本号字符串相比较。其返回值的功能与 Compare 相同
func (*SemVersion) Compatible ¶
func (v *SemVersion) Compatible(v2 *SemVersion) bool
Compatible 当前对象与 v2 是否兼容
semver 规定主版本号相同的,在 API 层面必须兼容。
func (*SemVersion) CompatibleString ¶
func (v *SemVersion) CompatibleString(ver string) (bool, error)
CompatibleString 当前对象与版本号字符串是否兼容
semver 规定主版本号相同的,在 API 层面必须兼容。