【问题标题】:Type 'String' does not conform to protocol 'SequenceType' - Swift 2.0类型'String'不符合协议'SequenceType' - Swift 2.0
【发布时间】:2015-10-02 14:14:51
【问题描述】:

我正在尝试在 Swift 2.0 中反转字符串,但在字符串 ifself 上出现错误。

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'

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    简单的解决方案:

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

    您的代码适用于此更改

    for character in string.characters {
    

    斯威夫特 3:

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

    斯威夫特 4:

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

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

    【讨论】:

      【解决方案2】:

      从 Swift 2 开始,String 不符合 SequenceType

      您可以添加扩展程序。

      extension String: SequenceType {}
      

      【讨论】:

      • 注意:SequenceType' 已重命名为'Sequence'。 'String' 与协议'Sequence' 的一致性已经在类型的模块'Swift'中声明
      猜你喜欢
      • 1970-01-01
      • 2016-07-28
      • 2014-10-23
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多