我正在为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)