Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的名称空间_Swift_Namespaces_Name Clash_Name Collision - Fatal编程技术网

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标准库。