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复制代码
相关文章
相关标签/搜索