swift: 无法将 [sic] 字符数组缩减为字符串

swift: can't reduce [sic] character array to string

我知道这是一个不必要的问题,但是...为什么我不能使用 reduce 将字符数组转换为字符串?

例如,

let str = "this is a string"
let clist = Array(str)
let slist = clist.reduce("", +)

给我:'Character' 不是 'Uint8' 的子类型 当

list dlist = [0, 1, 2, 3, 4, 5, 6]
let sum = dlist.reduce(0, +)

有效

我知道我可以简单地执行 slist = String(clist),但我只想知道,你知道吗?

Swift 1.1 xcode 6.2

游乐场

谢谢!

combine: 闭包内
let slist = clist.reduce("", +)
  • [=13=] 是迄今为止的累计结果 – String,
  • </code> 是 <code>clist 中的当前元素 – Character.

没有以 (String, Character) 作为参数的 + 运算符。

这可行:

let slist = clist.reduce("") { [=11=] + String() }

在 Swift 1.2:

let str = "this is a string"
let clist = Array(str)
let slist = clist.map { String([=10=]) }.reduce("", combine: { [=10=] +  })
println(slist) // "this is a string"