我可以使用字符串插值或字符串初始化程序读取int,float,double作为字符串.结果总是一样的.
var a: Int = 2
var c: Character = "e"
var d: String = "\(a)\(c)"
OR
var d: String = String(a) + String(c)
Run Code Online (Sandbox Code Playgroud)
结果是一样的.d的值为"2e"
我发现的唯一区别是字符串插值()可以在双引号内使用,而String()不能在双引号内使用.
这就是全部?我在这里错过了什么吗?
vac*_*ama 10
字符串插值"\(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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |