这就是我在游乐场文件中尝试的内容。我想要的结果是使用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
答案 0 :(得分:1)
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)