一个包含一系列对象和协议的软件包,用于创建和转换 Swift 编程语言中的度量单位。
暂无概述。
Swift Package Manager 是一个用于管理 Swift 代码分发的工具,并且集成在 swift 编译器中。
将此软件包添加到你的 Package.swift
文件中的依赖项中。
let package: Package = .init(
...
dependencies: [
.package(url: "https://github.com/bikecalc/swift-measures.git", branch: "main")
],
...
)
在你的 Package.swift
文件中,将此软件包添加为你的目标依赖项。
let package: Package = .init(
...
targets: [
.target(name: "MyTarget", dependencies: [
.product(name: "Measures", package: "swift-measures")
]),
],
...
)
在你的源代码中导入此软件包。
import Measures
创建一个符合 measurable 协议的维度。
struct FuelEfficiency: Measurable {
let coefficient: Double
let constant: Double
let symbol: String
init(
coefficient: Double,
constant: Double = 0,
symbol: String
) {
self.coefficient = coefficient
self.constant = constant
self.symbol = symbol
}
static let base: Self = .kilometresPerLiter
}
创建至少两个单位。
extension FuelEfficiency {
static let kilometresPerLiter: Self = .init(
coefficient: Length.kilometre.coefficient / Volume.liter.coefficient,
symbol: "Km/L"
)
static let metresPerLiter: Self = .init(
coefficient: Length.metre.coefficient / Volume.liter.coefficient,
symbol: "m/L"
)
}
使用值和单位初始化你的维度的度量。
var measure: Measure<FuelEfficiency> = .init(5, .kilometresPerLiter)
将度量转换到你的另一个单位。
measure.convert(to: .metresPerLiter)
print(measure) // Prints "5000m/L"
你可以访问文档页面以了解有关此软件包的更多信息。
贡献是使开源社区成为学习、激励和创造的绝佳场所的原因。 如果您希望做出贡献并成为该项目的一部分,请 fork 该存储库并创建一个拉取请求。
git checkout -b feature/NewFeature
git commit -m 'Added a new feature'
git push origin feature/NewFeature
如果您发现错误,请创建一个 issue。
如果您想分享您关于如何改进此存储库的想法,您可以联系代码所有者。 有关更多信息,请参见 CODEOWNERS.txt
文件。
如果此存储库在某种程度上对您有用,请通过加星标来表示您的支持。
为了成为一个真正伟大的社区,我们欢迎来自各行各业、具有不同背景和广泛经验的开发人员。一个多元化和友好的社区将拥有更多伟大的想法、更多独特的视角,并产生更多伟大的代码。我们将努力使这个社区欢迎每个人。 有关更多信息,请参见 CODEOFCONDUCT.md
文件。
在 Apache License v2.0 下分发,带有运行时库例外。 有关更多信息,请参见 LICENSE.md
文件。