原文連接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複製代碼