Cog*_*tio 0 null default-value null-coalescing-operator optional swift
是否有任何简便的快速简便方法可以获取非String类型的可选值,并获取String值,如果它是.some(),则为该值的String解释;如果它是.none(),则为默认值下列:
let statusCode = (resp as? HTTPURLResponse)?.statusCode
let statusCodeString: String
if let statusCode = statusCode {
statusCodeString = "\(statusCode)"
} else {
statusCodeString = "None"
}
Run Code Online (Sandbox Code Playgroud)
对于一个相对简单的事情来说,它似乎太冗长了,感觉就像我缺少明显的东西。
仅使用nil-coalescing运算符不起作用,因为您必须提供相同类型的默认值。
您可以这样写:
let statusCodeString = statusCode?.description ?? "None"
Run Code Online (Sandbox Code Playgroud)
或者,如果您要使用某些不具有属性的类型,请执行以下操作description:
let statusCodeString = statusCode.map{String(describing: $0)} ?? "None"
Run Code Online (Sandbox Code Playgroud)