是否有任何非常简洁的方法来获取非String类型的可选项并获取String值,该值是该值的字符串解释(如果是.some())或某些默认值(如果它是.none) ()除了以下内容:
let statusCode = (resp as? HTTPURLResponse)?.statusCode
let statusCodeString: String
if let statusCode = statusCode {
statusCodeString = "\(statusCode)"
} else {
statusCodeString = "None"
}
对于一个相对简单的事情来说,这看起来非常冗长,感觉我错过了一些明显的东西。
仅使用nil-coalescing运算符不起作用,因为您必须提供相同类型的默认值。
答案 0 :(得分:5)
你可以写一些这样的东西:
let statusCodeString = statusCode?.description ?? "None"
或者,如果您想使用某些没有属性description
的类型:
let statusCodeString = statusCode.map{String(describing: $0)} ?? "None"