作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我可以使用字符串插值或字符串初始值设定项将 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/
我是一名优秀的程序员,十分优秀!