在Swift中连接string
我有一个数组,其中包含string即数组
我试图连接string,但我得到一个错误,因为“ string是不一样的UInt8 ”
var titleString:String! = "" for title in array { titleString += "\(title)" }
要连接string数组的所有元素,可以使用reduce
方法:
var string = ["this", "is", "a", "string"] let res = string.reduce("") { $0 + $1 }
第一个参数是初始string,它是空的,第二个参数是一个闭包,它是为数组中的每个元素执行的。 闭包接收2个参数:上一步返回的值(或初始值,如果是第一个元素)和当前元素值。
更多信息在这里
附录我忘了明确地回答你的问题:连接不起作用,因为你把titleString
声明为可选的 – 只是变成一个非可选的variables,它将工作。 如果您仍想使用可选项,则在执行作业时使用强制展开:
titleString! += "\(title)"
附录2根据@MartinR的build议,还有另外一种更简单的连接方式:
join("", string)
在Swift 3中,这是如何连接string数组的元素:
["this", "is", "a", "string"].joined(separator: "")
尽pipejoined(separator:)
实际上是为了在string之间添加分隔符而devise的。 还原更简洁:
["this", "is", "a", "string"].reduce("", +)