简体   繁体   English

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

[英]Type 'String' does not conform to protocol 'SequenceType' - Swift 2.0

I'm trying to reverse string in Swift 2.0 but I get an error on the string ifself. 我试图在Swift 2.0中反转字符串但是我在字符串上遇到错误。

func reverseString(string: String) -> String {
    var buffer = ""
    for character in string {
        buffer.insert(character, atIndex: buffer.startIndex)
    }

    return buffer
}

The error: 错误:

Type 'String' does not conform to protocol 'SequenceType'

Easy solution: 简易解决方案

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

Your code works with this change 您的代码适用于此更改

for character in string.characters {

Swift 3: 斯威夫特3:

In Swift 3 reverse() has been renamed to reversed() 在Swift 3中, reverse()已重命名为reverse() reversed()

Swift 4: 斯威夫特4:

In Swift 4 characters can be omitted because String returned to behave like a sequence. 在Swift中,可以省略4个characters因为String返回的行为类似于序列。

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

As of Swift 2, String doesn't conform to SequenceType . 从Swift 2开始, String不符合SequenceType

You can add an extension. 您可以添加扩展程序。

extension String: SequenceType {}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM