这就是我在 playground 文件中尝试的内容。我想要的结果是使用 stringByAppendingString
的第二个 println
结果。 stringByAppendingString
不是应该返回修改后的字符串吗?我在这里做错了什么?
var reportSummary:String = "Total: \t\t300.00"
reportSummary.stringByAppendingString("Net: \t\t200.00")
println(reportSummary)
// Total: 300.00
var reportSum = "Total: \t300.00\n"
var netSum = "Net: \t\t200.00\n"
var sum = reportSum + netSum
println(sum)
// Total: 300.00
// Net: 200.00
最佳答案
stringByAppendingString
消息创建并返回一个新的 String
。它不会修改接收器(原始 String
)。
如果你想使用组合的String
,你需要对返回值做一些事情。您发布的代码忽略了返回值。例如,您可以将返回的 String
存储在您的 reportSummary
变量中,如下所示:
var reportSummary:String = "Total: \t\t300.00"
reportSummary = reportSummary.stringByAppendingString("\nnNet: \t\t200.00")
println(reportSummary)
不过,您也可以使用 +=
运算符:
var reportSummary = "Total: \t\t300.00"
reportSummary += "\nNet: \t\t200.00"
println(reportSummary)
或者你可以使用extend
方法:
var reportSummary = "Total: \t\t300.00"
reportSummary.extend("\nNet: \t\t200.00")
println(reportSummary)
或者你可以显式地使用基础类型NSMutableString
:
let reportSummary: NSMutableString = "Total: \t\t300.00"
reportSummary.appendString("\nNet: \t\t200.00")
println(reportSummary)
关于swift - stringByAppendingString 不返回修改后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30115994/