原文连接swift
首先,咱们怎么检测一个字符串是否为空呢。app
Swift中有一个属性叫isEmptyurl
var isEmpty: Bool { get }
复制代码
咱们能够去Swift源码中,看到isEmpty的实现:spa
public var isEmpty: Bool {
return startIndex == endIndex
}
复制代码
只是去简单的比较了起始点是否与终结点相同.code
咱们能够这样去检测:blog
var str = "Hello, playground"
str.isEmpty // false
str = ""
str.isEmpty // true
复制代码
可是有个问题是,有的时候咱们但愿只包含空格这种类型的字符串,也被定义成空字符串,如:字符串
" ".isEmpty // false
复制代码
所以咱们须要写一个方法来作这个,就叫作:get
extension String {
var isBlank: Bool {
return allSatisfy({ $0.isWhitespace })
}
}
" ".isBlank // true
复制代码
而后若是字符串是个可选值:源码
extension Optional where Wrapped == String {
var isBlank: Bool {
return self?.isBlank ?? true
}
}
let s: String? = " "
print("\(s.isBlank)") // true复制代码