SwiftMeasurement
Swift中处理度量单位和单位最佳方式。
度量单位和单位是iOS 10中引入的新功能。
用法
- 之前
Measurement<UnitLength>(value: 3, unit: .kilometers) + Measurement<UnitLength>(value: 4, unit: .kilometers)
- 之后
3.kilometers + 4.kilometers
SwiftMeasurement支持Foundation框架中声明的所有单位。
- 单位长度
- 单位燃油效率
- 单位电阻
- 单位照度
- 单位散度
- 单位电荷
- 单位体积
- 单位能量
- 单位角度
- 单位时间
- 单位温度
- 单位频率
- 单位功率
- 单位电流
- 单位电压
- 单位加速度
- 单位速度
- 单位面积
- 单位质量
- 单位质量浓度
- 单位压力
需求
当前版本与以下兼容:
- Swift 5.0+
- iOS 10或更高版本
- macOS 10.12或更高版本
安装
SwiftMeasurement支持多种方法在项目中安装库。
使用CocoaPods安装
CocoaPods是一个Objective-C依赖管理器,可自动简化在项目中使用第三方库(如SwiftMeasurement)的过程。您可以使用以下命令安装它
$ gem install cocoapods
Podfile
要使用CocoaPods将SwiftMeasurement集成到Xcode项目中,请在您的Podfile
中指定它
pod 'SwiftMeasurement'
然后,运行以下命令
$ pod install
使用Carthage安装
Carthage是一个去中心化的依赖管理器,可构建您的依赖并提供二进制框架。
您可以使用以下命令使用Homebrew安装Carthage
$ brew update
$ brew install carthage
要使用Carthage将SwiftMeasurement集成到您的Xcode项目中,请在您的Cartfile
中指定它
github "ken0nek/SwiftMeasurement"
运行carthage
以构建框架并将构建的SwiftMeasurement.framework
拖放到您的Xcode项目中。
未来功能
- 描述维度之间的关系。[L, M, T, L/T, L/T^2等...]
// Speed * Duration -> Length
func * (lhs: Measurement<UnitSpeed>, rhs: Measurement<UnitDuration>) -> Measurement<UnitLength> {
let v = lhs.converted(to: .baseUnit()).value * rhs.converted(to: .baseUnit()).value
return Measurement<UnitLength>(value: v, unit: .baseUnit())
}
let duration = 10.hours // 10.0 hr
let speed = 5.kilometersPerHour // 5.0 km/h
(speed * duration).converted(to: .kilometers) // 50.00004 km