Swift中的空字符串

Swift中的空字符串

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