Swift自定义字符串格式扩展总是返回0



我需要自定义字符串格式扩展,但我有一些字符串格式问题。

这是代码。

print(String(format: "%.1f", 1.12))
print(String.format("%.1f", 1.12))
extension String {
static func format(_ format: String, _ arguments: CVarArg...) -> String {
return String(format: format, arguments)
}
}

输出

1.1
0.0

为什么输出不一样?谢谢

我认为发生这种情况是因为扩展中格式化函数的返回类型是(_ format: String, _ arguments: CVarArg...)。return必须为String(format: String, arguments:[CVarArg])。函数中的参数arguments的类型为[CVarArg]。如果在return String格式类型中使用_ arguments: CVarArg...而不是[CVarArg],则arguments的参数将为[[CVarArg]]。它现在实际上是2d数组。它可能因此而失败。

同样,这也不起作用太

print(String(format: "%.1f", [1.12])) // args is CVarArg...

最新更新