我有一个应用程序,它处理大量需要以表格形式显示的可选数据
<Latest value formatted (units)> || "never updated"
所以显然我的代码充满了诸如此类的东西:
var pressureString: String {
(self.lastData != nil) ?
String(format: "%.2f kPa",self.lastData!.pressure.doubleValue)
:
Constants.neverupdated // NSLocalizedString
}
所以我决定尝试用以下方法整理一下:
var pressureString: String {
(self.lastData?.pressure.doubleValue).format("%.2f kPa",or: Constants.neverupdated)
}
并将format
写为:
extension Optional {
func format(_ formatString: String,or: String) -> String {
if let s = self {
return String(format: formatString,s)
} else {
return or
}
}
}
但是,出现错误“参数类型'Wrapped'不符合预期的类型'CVarArg'”,并且在https://developer.apple.com/documentation/swift/cvararg查找文档时,我看到
声明已定义类型符合CVarArg协议 不支持标准库之外的内容。
...那么有什么 格式来格式化通用Wrapped
?