语义化版本
Swift 中的语义化版本实现。 Semver
代表根据 语义化版本规范 的语义版本。
需求
- Swift 5.1
- iOS 8
- macOS 10.11
- tvOS 9.0
- watchOS 2.0
安装
Semver
不包含任何外部依赖。目前支持以下选项
CocoaPods
# Podfile
user_framework!
target 'YOUR_TARGET_NAME' do
pod 'Semver.swift'
end
替换 YOUR_TARGET_NAME
,然后在 Podfile
目录中,输入以下内容
$ pod install
Swift 包管理器
创建一个 Package.swift
文件。
// swift-tools-version:5.1
import PackageDescription
let package = Package(
name: "NAME",
dependencies: [
.package(url: "https://github.com/glwithu06/Semver.swift.git", from: "SEMVER_TAG")
],
targets: [
.target(name: "NAME", dependencies: ["Semver"])
]
)
替换 SEMVER_TAG
然后输入
$ swift build
使用方法
创建
可以通过直接使用 Semver
实例化
let version = Semver(major: 1, minor: 23, patch: 45, prereleaseIdentifiers: ["rc", "1"], buildMetadataIdentifiers: ["B001"])
minor
和 patch
参数是可选的,默认为 "0"。
prereleaseIdentifiers
和 buildMetadataIdentifiers
参数是可选的,默认为 []
。
解析
您可以从字符串创建 Semver
。
let version = try Semver(string: "1.23.45-rc.1+B001")
或从数值。
let version = try Semver(number: 1.23)
let version = try Semver(number: 10)
如果版本无效,将抛出 ParsingError
。
扩展
Semver
符合 ExpressibleByStringLiteral
, ExpressibleByIntegerLiteral
, ExpressibleByFloatLiteral
。
它可以将 String
转换为 Semver
。
let version: Semver = "1.23.45-rc.1+B001"
或将 Numeric
转换为 Semver
。
let version: Semver = 1
let version: Semver = 1.23
Semver
表示 "0.0.0"。它不会抛出任何错误。
比较
实现了默认的比较运算符(<
, <=
, >
,>=
,==
, !=
)。
这将按照 语义版本规范 比较主要、次要、修复版和预发布标识符。
贡献
任何拉取请求和错误报告都受欢迎!
请随时创建一个拉取请求。