在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("", +)