FunctionalSwiftKit
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
使用
条件
- 您可以根据函数式编程范式使用此功能代替条件语句。
- 确保线程安全。
- 它很简单。
- 全局变量。
使用单条件语句
if <<true or false>> {
} else if <<true or false>> {
} else {
}
condition
.if(<<true or false>>) {}
.elseif(<<true or false>>) {}
.else {}
使用链式多个条件语句
if <<true or false>> {
} else if <<true or false>> {
} else {
}
if <<true or false>> {
} else if <<true or false>> {
} else {
}
condition
.if(<<true or false>>) {}
.elseif(<<true or false>>) {}
.else {}
.if(<<true or false>>) {}
.elseif(<<true or false>>) {}
.else {}
数组扩展
- 以下是数组中常用的一些函数。
// Sample struct
struct Model: Hashable {
let uid: String
var hashValue: Int { return uid.hashValue }
static func ==(lhs: Model, rhs: Model) -> Bool {
return lhs.uid == rhs.uid
}
}
使用与字符串结合的 'grouped' 函数
let source = ["A", "A", "B", "C"]
let grouped = source.grouped { $0 }
// print -> ["A": ["A", "A"], "B": ["B"], "C": ["C"]]
使用与结构体结合的 'grouped' 函数
let source = [Model(uid: "A"), Model(uid: "A"), Model(uid: "B"), Model(uid: "C")]
let grouped = source.grouped { $0.uid }
// print -> ["A": [Model(uid: "A"), Model(uid: "A")], "B": [Model(uid: "B")], "C": [Model(uid: "C")]]
使用 'subtracted' 函数
let source = [Model(uid: "A"), Model(uid: "B")]
let other = [Model(uid: "A")]
let subtracted = source.subtracted(other)
// print -> [Model(uid: "B")]
使用 'uniqued' 函数
let source = [Model(uid: "A"), Model(uid: "A"), Model(uid: "B"), Model(uid: "B")]
let uniqued = source.uniqued()
// print -> [Model(uid: "A"), Model(uid: "B"), Model(uid: "C")]
可选扩展
- 当你不需要返回元素时,可以使用 Optional 的 unwrap 而不是 map。
import FunctionalSwiftKit
func testUnwrap() {
let string: String? = "string"
string.unwrap { <<your function for execution>>($0) }
}
需求
iOS 部署目标 9.0 以上
安装
FunctionalSwiftKit 可通过 CocoaPods 平台获取。要安装它,请简单地在您的 Podfile 中添加以下行:
pod 'FunctionalSwiftKit'
Carthage
Carthage 是一个去中心化的依赖管理器,它构建你的依赖并为你提供二进制框架。
你可以使用以下命令通过 Homebrew 安装 Carthage:
$ brew update
$ brew install carthage
要使用 Carthage 将 FunctionalSwiftKit 集成到你的 Xcode 项目中,请在你的 Cartfile
中指定它。
github "pisces/FunctionalSwiftKit"
运行 carthage update
构建框架并将构建的 FunctionalSwiftKit.framework
拖放到你的 Xcode 项目中。
作者
Steve Kim, [email protected]
许可
FunctionalSwiftKit 在 BSD 2-Clause License 许可下可用。更多信息请参阅 LICENSE 文件。