Swift中的名称空间
我正在为Swift中的名称空间,swift,namespaces,name-clash,name-collision,Swift,Namespaces,Name Clash,Name Collision,我正在为String编写一个扩展,以返回它的反向版本: extension String{ func rev()->String{ var r = "" r.extend(reverse(self)) return r } } 代码工作正常,但我想调用此方法reverse,而不是rev。如果我这样做,我会得到一个错误,因为方法名与通用函数冲突reverse: extension String{ func reve
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
}
}
extension String{
func reverse()->String{
var r = ""
r.extend(Swift.reverse(self))
return r
}
}
有没有一种方法可以指定我指的是方法主体内的泛型函数
reverse
?您始终可以通过在模块名称前加前缀来显式调用Swift函数,例如Swift.reverse()
:
请注意,您可以将函数稍微简化为
func reverse()->String{
return String(Swift.reverse(self))
}
这是因为Swift.reverse()
返回一个数组,array
符合
SequenceType
,并且String
具有构造函数
init<S : SequenceType where Character == Character>(_ characters: S)
init(u个字符:S)
始终可以通过在模块名称前加前缀显式调用Swift函数,例如Swift.reverse()
:
请注意,您可以将函数稍微简化为
func reverse()->String{
return String(Swift.reverse(self))
}
这是因为Swift.reverse()
返回一个数组,array
符合
SequenceType
,并且String
具有构造函数
init<S : SequenceType where Character == Character>(_ characters: S)
init(u个字符:S)
你刚刚在发帖方面击败了我,但这是正确的。使用Swift
名称空间可以毫不含糊地访问Swift标准库。您刚刚在发布方面击败了我,但这是正确的。使用Swift
命名空间可以明确地访问Swift标准库。