我有一个使用以下内容初始化的Swift 3数组:
var foo: [String] = []
在我的一个递归调用的方法中,我试图将一个字符串转换为一个字符数组,但是附加这些字符而不是直接赋值给foo
。所以这将编译:
self.foo = text.characters.map { String($0) }
但是下面的休息:
self.foo.append(text.characters.map { String($0) })
它产生的错误是:'map' produces '[T]', not expected contextual result type 'String'
采用这种方法的正确方法是什么?
答案 0 :(得分:6)
您需要改为使用append(contentsOf:)
方法。
foo.append(contentsOf: text.characters.map { String($0) })
此方法可以采用已定义类型的数组。
而append()
方法需要在数组末尾添加单个元素。