测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可协议 | MIT |
发布最后发布 | 2017年9月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由Dmitry Smetankin 维护。
smetankin93
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 项目。