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

Swift custom string format extension always return 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

为什么输出不一样?谢谢!

我认为这是因为扩展中格式函数的 return 类型是 (_ format: String, _ arguments: CVarArg...) 。 return 必须是 String(format: String, arguments:[CVarArg])。函数中的参数 arguments[CVarArg] 的类型,如果您在 [=23= 中使用 _ arguments: CVarArg... 而不是 [CVarArg] ] 字符串格式类型,arguments 的参数将是 [[CVarArg]]。它现在实际上是二维数组。它可能因此而失败。

这也行不通

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