gpt4 book ai didi

swift - Swift 中字符串插值和字符串初始值设定项之间的区别

转载 作者:IT王子 更新时间:2023-10-29 05:42:36 26 4
gpt4 key购买 nike

我可以使用字符串插值或字符串初始值设定项将 int、float、double 读取为字符串。结果总是一样的。

var a: Int = 2

var c: Character = "e"

var d: String = "\(a)\(c)"

OR

var d: String = String(a) + String(c)

结果是一样的。 d 的值为“2e”

我发现的唯一区别是字符串插值 () 可以在双引号内使用,而 String() 不能在双引号内使用。

就这些了吗?我在这里遗漏了什么吗?

最佳答案

字符串插值 "\(item)" 为您提供对项目调用 description 的结果。 String(item) 调用一个 String 初始化器并返回一个 String 值,该值通常与 String 相同您将从字符串插值中获得,但不能保证。

考虑以下人为的示例:

class MyClass: CustomStringConvertible {
var str: String

var description: String { return "MyClass - \(str)" }

init(str: String) {
self.str = str
}
}

extension String {
init(_ myclass: MyClass) {
self = myclass.str
}
}

let mc = MyClass(str: "Hello")
String(mc) // "Hello"
"\(mc)" // "MyClass - Hello"

关于swift - Swift 中字符串插值和字符串初始值设定项之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38675957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com