Swiftx
Swiftx 是一个包含函数式抽象和对 Swift 标准库扩展的 Swift 库。Swiftx 是一种更小、更简单的将纯函数式数据类型引入任何代码库的方式。
要查看一个功能更完整的库,请查看 Swiftz。
设置
Swiftx 可以通过以下两种方式之一包含:
框架
- 将
Swiftx.xcodeproj
或Swiftx-iOS.xcodeproj
拖到您的项目树中作为子项目 - 在您项目的构建阶段下,展开目标依赖项
- 点击 + 并添加 Swiftx
- 展开“将二进制文件与库链接”阶段
- 点击 + 并添加 Swiftx
- 在左上角点击 + 以添加一个“复制文件”构建阶段
- 将目录设置为
Frameworks
- 点击 + 并添加 Swiftx
独立
- 将
Swiftx/Swiftx
下的 swift 文件复制到您的项目中
介绍
Swiftx 提供了一系列通用的数据类型和抽象,任何代码库都可以利用。
一个小例子
import Swiftx
let str : String? = .Some("Hello ")
let greeting = (+"World") <^> str // .Some("Hello World")
也可以轻松与现有的平台库进行无缝交互
import Foundation
import struct Swiftx.Result
/// result now contains either an array of file paths or the error generated by `NSFileManager`.
let result : Result<[String]> = from({ ep in
let documentsDirectory : String = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String)
return (NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsDirectory, error: ep) as [String]?) ?? []
})
Swiftx 甚至可以帮助表达空值或错误
import Swiftx
/// We may not be able to do what we said we'd do, but this definition compiles. At runtime,
/// any code that invokes this function will immediately halt the program.
func provePEqualsNP() -> Proof<P, NP> {
return undefined()
}
系统需求
Swiftx支持OS X 10.9+和iOS 8.0+。
许可协议
Swiftx采用BSD许可协议发布。