给定一个字符串:"My name is Gustavo"
,它是用"My name is \(foo.name)"
创建的
是否可以在值被替换后获得字符串"My name is \(foo.name)"
?
换句话说,有没有可能在拥有"My name is Gustavo"
的情况下找到"My name is \(foo.name)"
编辑:如果我可以访问"My name is "
,也就是。来自动态构建的所有字符串的硬编码字符串,这将是一个解决方案。
发布于 2019-06-14 03:03:11
不,这不可能。事实上,"My name is \(foo.name)"
甚至没有包含在编译后的代码中。相反,Swift-5编译器生成的代码等同于:
let str = String(stringInterpolation: {
var temp = String.StringInterpolation(literalCapacity: 11, interpolationCount: 1)
temp.appendLiteral("My name is ")
temp.appendInterpolation(foo.name)
return temp
}())
This article包含有关如何在Swift-4和Swift-5中实现字符串插值的详细信息。
https://stackoverflow.com/questions/56586857
复制相似问题