ExtOptional 1.2

ExtOptional 1.2

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最后发布2017年9月
SwiftSwift 版本3.0
SPM支持 SPM

Dmitry Smetankin 维护。



Dmitry Smetankin

smetankin93

GitHub 仓库

ExtOptional

let gitURL: URL? = URL(string: "https://github.com/Smitters/OptionalExtensions")
let request = URLRequest(url: gitURL.require(hint: "Invalid URL"))

一组函数、运算符和属性,用于帮助您处理 Optional 类型。

let daysInMonth: Int? = nil
let daysCount = daysInMonth.unwrap(default: 31) // returns 31

用法

let x: String? = nil
let r = x.isNone // r == true

调用 require() 以确保 Optional 值非 nil,或者在调试目的下抛出包含可选的 hint 的 fatalError

let x: String? = "foo"
let r = x.isSome // r == true

调用 unwrap(default: value) 返回包含的值或默认值

let x: String? = "String"
let y: Int? = 31
let z: String? = nil

print("\(x) \(y) \(z)") // Optional("String") Optional(31) nil
print("\(x.stringRepresentation) \(y.stringRepresentation) \(z.stringRepresentation)") // String 31

属性 isNone 返回 Optional 是否为 nil

let x: Int? = 43
let y: Int? = 5
let z: Int? = nil

x >=? y // true
x >? z // true
z >? x // false
y <? x // true
x <=? 43 // true
x <=? y //false

let array: [Int?] = [2, 4, nil, 1, 5, nil, 3]
let sortedArray = array.sorted(by: >?) // [5, 4, 3, 2, 1, nil, nil]

属性 isSome 返回 Optional 是否为 .some

属性 stringRepresentation 确保您设置的文本永远不会包含那烦人的额外 “Optional(…)”

Swift 3 删除了 Optional 比较运算符,但您可以通过在 Swift 的标准比较运算符中添加 ? 符号来达到相同的行为

安装

CocoaPods

pod "ExtOptional" 添加到您的 Podfile

  • 手动
  • 克隆仓库并将文件 OptionalExtensions.swift 拖入您的 Xcode 项目。
  • 需要帮助、反馈或建议?