这就是我在操场文件中尝试的内容。我想要的结果是使用println
的第二个stringByAppendingString
结果。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
发布于 2015-05-08 04:58:15
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)
https://stackoverflow.com/questions/30115994
复制相似问题