贡献
这个项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您有权并且确实授予我们使用您贡献的权利。有关详细信息,请访问 https://cla.microsoft.com。
在提交拉取请求时,CLA 模拟器会自动确定您是否需要提供 CLA,并适当地装饰 PR(例如,标签,注释)。只需按照机器人提供的说明操作。您只需要在整个使用我们的 CLA 的所有存储库中都这样做一次。
本项目已采用微软开源行为准则。有关更多信息,请参阅行为准则常见问题解答,或联系 [email protected] 询问任何额外的问题或评论。
法律声明
微软和任何贡献者授予您微软文档以及本存储库中其他内容的知识共享署名 4.0 国际许可协议许可权,请参阅LICENSE 文件,并授予您使用存储库中任何代码的MIT 许可协议许可权,请参阅LICENSE-CODE 文件。
微软和任何贡献者保留所有其他权利,包括其各自的版权、专利或商标权利,无论是由默示、禁止或任何其他方式产生的。
隐私信息可在 https://privacy.microsoft.com/en-us/ 找到
微软和任何贡献者保留所有其他权利。
安装
Swift Package Manager
- 如果尚未初始化,请运行
swift package init
。 - 将以下依赖项添加到
Package.swift
中的Package部分。
dependencies: [
.package(url: "https://github.com/microsoft/CorrelationVector-Swift.git", from: "1.0.0")
]
- 将依赖项添加到Package > targets > target > dependencies部分。
.target(
name: "YourApp",
dependencies: ["CorrelationVector"])
- 运行
swift build
以下载、链接和编译依赖项。
CocoaPods
- 如果尚未初始化,请运行
pod init
。 - 将以下行添加到
中相应的目标部分。
pod 'CorrelationVector'
- 运行
pod install
有关使用CocoaPods的更多信息,请参阅官方指南。
Carthage
- 如果没有创建
Cartfile
,请运行touch Cartfile
。 - 在
Cartfile
中添加以下行
github "microsoft/CorrelationVector-Swift"
- 运行
carthage update --platform iOS
并按照附加步骤将框架添加到您的项目中。
用法
有关相关向量的常规信息,请参阅规范。
初始化新向量
// Implicit creation
let correlationVector = CorrelationVector()
// Explicit creation
let correlationVectorV1 = CorrelationVector(.v1)
let correlationVectorV2 = CorrelationVector(.v2)
// Automatic version detection
let parsedCorrelationVector = CorrelationVector.parse("vtul4NUsfs9Cl7mOf.1")
通过扩展现有值创建新向量
// Initialize "vtul4NUsfs9Cl7mOf.1.0" correlation vector by extending an existing value
do {
let correlationVector = try CorrelationVector.extend("vtul4NUsfs9Cl7mOf.1")
} catch CorrelationVectorError.invalidArgument(let description) {
// log the error
} catch CorrelationVectorError.invalidOperation(let description) {
// log the error
} catch {
// log the error
}
旋转
注意: 旋转运算符只能在版本2的相关向量上使用
let correlationVector = CorrelationVector(.v2)
let params = SpinParameters(interval: .fine, periodicity: .short, entropy: .two)
do {
let spinCorrelationVector = try CorrelationVector.spin(correlationVector.value, params)
} catch {
// log the error
}
通用方法
do {
// Initialize "vtul4NUsfs9Cl7mOf.1.0" correlation vector by extending an existing value
let correlationVector = try CorrelationVector.extend("vtul4NUsfs9Cl7mOf.1")
} catch {
// log the error
}
// Get base of cv ("vtul4NUsfs9Cl7mOf")
let base = correlationVector.base
// Get extension of cv (0)
let ext = correlationVector.extension
// Increment existing vector and return result ("vtul4NUsfs9Cl7mOf.1.1")
let newValue = correlationVector.increment()