gpt4 book ai didi

ios - 在 Swift 中格式化字符串

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:45 24 4
gpt4 key购买 nike

在某些语言中,例如 C#,您可以通过以下方式创建字符串:

"String {0} formatted {1} "

然后通过传入要格式化的值,使用 String.format 对其进行格式化。

上面的声明很好,因为你在创建字符串时不必知道它的参数是什么类型。

我试图在 Swift 中找到类似的方法,但我发现的是类似于以下格式的内容:

"String %d formatted %d"

这需要您使用 String(format: , parameters) 格式化字符串。这不好,因为在声明字符串时您还必须知道参数类型。

在 Swift 中是否有类似的方法让我不必知道参数类型?

最佳答案

使用这个:

let printfOutput = String(format:"%@ %2.2d", "string", 2)

它与 printf 或 Obj-C 格式化相同。

也可以这样混合:

let parm = "string"
let printfOutput = String(format:"\(parm) %2.2d", 2)

编辑:感谢 MartinR(他无所不知 ;-)

Be careful when mixing string interpolation and formatting. String(format:"\(parm) %2.2d", 2) will crash if parm contains a percent character. In (Objective-)C, the clang compiler will warn you if a format string is not a string literal.

这为黑客攻击提供了一些空间:

let format = "%@"
let data = "String"
let s = String(format: "\(format)", data) // prints "String"

与在编译时解析格式字符串的 Obj-C 相比,Swift 不这样做,只是在运行时解释它。

关于ios - 在 Swift 中格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29154158/

24 4 0
文章推荐: jquery - 如何强制隐藏+空的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com