Nil Coalescing运算符具有混合类型

时间:2017-03-31 23:05:00

标签: swift null optional default-value null-coalescing-operator

是否有任何非常简洁的方法来获取非String类型的可选项并获取String值,该值是该值的字符串解释(如果是.some())或某些默认值(如果它是.none) ()除了以下内容:

let statusCode = (resp as? HTTPURLResponse)?.statusCode
let statusCodeString: String
if let statusCode = statusCode {
    statusCodeString = "\(statusCode)"
} else {
    statusCodeString = "None"
}

对于一个相对简单的事情来说,这看起来非常冗长,感觉我错过了一些明显的东西。

仅使用nil-coalescing运算符不起作用,因为您必须提供相同类型的默认值。

1 个答案:

答案 0 :(得分:5)

你可以写一些这样的东西:

let statusCodeString = statusCode?.description ?? "None"

或者,如果您想使用某些没有属性description的类型:

let statusCodeString = statusCode.map{String(describing: $0)} ?? "None"