Swift中的命名空间



我正在为String编写一个扩展,以返回它的反向版本:

extension String{
    func rev()->String{
        var r = ""
        r.extend(reverse(self))
        return r
    }
}

代码运行良好,但我想将此方法称为reverse,而不是rev。如果我这样做,我会得到一个错误,因为方法名称与通用函数reverse:冲突

extension String{
    func reverse()->String{
        var r = ""
        r.extend(reverse(self)) // this is where I get the error
        return r
    }
}

有没有一种方法可以指定我指的是方法主体内的泛型函数reverse

您总是可以通过在模块名称前面加上前缀来显式调用Swift函数,例如Swift.reverse():

extension String{
    func reverse()->String{
        var r = ""
        r.extend(Swift.reverse(self))
        return r
    }
}

请注意,您可以将功能稍微简化为

func reverse()->String{
    return String(Swift.reverse(self))
}

这是因为Swift.reverse()返回一个数组,Array符合CCD_ 9和CCD_

init<S : SequenceType where Character == Character>(_ characters: S)

相关内容

  • 没有找到相关文章

最新更新