【发布时间】:2018-08-12 09:22:51
【问题描述】:
我正在使用 swift String(format:...) 并且需要使用三元运算符计算格式字符串本身的值,类似这样但它不会编译。
String(format: "Audio: \(numChannels>1?"Stereo": "Mono")")
在 Objective-C 中,我可以这样做:
[NSString stringWithFormat:@"Audio: %@", numChannels > 1 ? @"Stereo" : @"Mono"];
如何在没有中间变量的情况下在 Swift 中实现同样的优雅?
【问题讨论】:
-
请注意,您的 Objective-C 版本不计算格式字符串本身的值。格式是固定的,参数计算字符串。
-
@MartinR 没错,但在 Swift 中我可以计算值,例如格式字符串本身的 '\(sampleRate/1000)'。
-
也许你的意思是字符串插值:
let s = "Audio: \(numChannels > 1 ? "Stereo" : "Mono")" -
您的 Swift 代码无法编译的原因是
?和:周围缺少空格 -
你甚至可以在没有
String(format和没有字符串插值的情况下组成字符串:"Audio :" + (numChannels > 1 ? "Stereo" : "Mono")
标签: objective-c swift string stringwithformat