我刚刚开始了解 Swift,但我在极其基础的数字格式化方面遇到了严重的问题。
例如,我需要显示至少 2 位数字的整数(例如 00、01、02、03、04、05 ...)。我期望的正常语法是这样的:
println(" %02i %02i %02i", var1, var2, var3);
...但我没有找到任何关于如何在 Swift 中实现这一目标的明确说明。我发现很难相信我需要创建一个自定义函数来做到这一点。将浮点或双精度值返回到固定的小数位数也是如此。
我找到了几个类似问题的链接(Swift 中的精确字符串格式说明符 https://stackoverflow.com/questions/24051314/precision-string-format-specifier-in-swift & 如何在 Swift 中使用 println 格式化数字 https://stackoverflow.com/questions/24102814/how-to-use-println-in-swift-to-format-number)但他们似乎混合了 Objective C,甚至谈论 Python 和使用统一库。没有 Swift 解决方案来满足这种基本的编程需求吗?如此基本的东西在 Swift 中真的被完全忽视了吗?
您可以使用以下构造函数构造一个具有类似 C 格式的字符串:
String(format: String, arguments:[CVarArgType])
使用示例:
var x = 10
println(String(format: "%04d", arguments: [x])) // This will print "0010"
如果您要经常使用它,并且想要更紧凑的形式,您可以实现如下扩展:
extension String {
func format(arguments: [CVarArgType]) -> String {
return String(format: self, arguments: arguments)
}
}
允许简化其用法,如下例所示:
"%d apples cost $%03.2f".format([4, 4 * 0.33])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)