Swiftx 0.8.0

Swiftx 0.8.0

测试已测试
语言语言 SwiftSwift
许可证 BSD-3-Clause
发布最后发布2019年3月
SPM支持 SPM

Robert Widmann 维护。



Swiftx 0.8.0

  • CodaFi 和 pthariensflame

Swiftx

Swiftx 是一个包含函数式抽象和对 Swift 标准库扩展的 Swift 库。Swiftx 是一种更小、更简单的将纯函数式数据类型引入任何代码库的方式。

要查看一个功能更完整的库,请查看 Swiftz

设置

Swiftx 可以通过以下两种方式之一包含:

框架

  • Swiftx.xcodeprojSwiftx-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许可协议发布。