在学习 guard语句之前,我使用 Swift 一段时间。现在我是你的超级粉丝。它的用法类似于 if语句,但是它支持 提前回来,并且通常使代码更加简洁。
若要在检查时使用 Guard 以确保字符串既不为 nil 也不为空,可以执行以下操作:
let myOptionalString: String? = nil
guard let myString = myOptionalString, !myString.isEmpty else {
print("String is nil or empty.")
return // or break, continue, throw
}
/// myString is neither nil nor empty (if this point is reached)
print(myString)
extension Optional where Wrapped == String {
/// Checks to see whether the optional string is nil or empty ("")
public var isNilOrEmpty: Bool {
if let text = self, !text.isEmpty { return false }
return true
}
}
在可选字符串上使用如下:
if myString.isNilOrEmpty { print("Crap, how'd this happen?") }