类型'String'不符合协议'SequenceType' - Swift 2.0

5
我正在尝试在Swift 2.0中反转字符串,但是我在字符串本身上遇到了错误。
func reverseString(string: String) -> String {
    var buffer = ""
    for character in string {
        buffer.insert(character, atIndex: buffer.startIndex)
    }

    return buffer
}

错误信息:
Type 'String' does not conform to protocol 'SequenceType'
2个回答

22

简单解决方案:

func reverseString(string: String) -> String {
    return String(string.characters.reverse())
}

你的代码在这个更改下运行正常

for character in string.characters {

Swift 3:

在 Swift 3 中,reverse() 已更名为 reversed()

Swift 4:

在 Swift 4 中,可以省略characters,因为返回的String行为类似于序列。

func reverseString(string: String) -> String {
    return String(string.reversed())
}

0

从Swift 2开始,String不符合SequenceType

您可以添加一个扩展。

extension String: SequenceType {}

注意:'SequenceType'已更名为'Sequence'。'String'符合协议'Sequence'的一致性已在类型模块'Swift'中声明。 - Peter Kreinz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接