Swift:想要对现有功能使用扩展

时间:2016-09-19 10:56:19

标签: swift

我确定了一个功能:

func inSubfolder_(file : String, root : String) -> Bool { ... }

我想将String添加为扩展名:

extension String {
    func inSubfolder(root : String) -> Bool {
        return inSubfolder_(file : self, root : root)
    }
}

我喜欢使用相同的名称(没有“_”),但是全局的名称需要声明为“global”,因此扩展名不会尝试访问自身(recursivly)。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

您可以通过使用模块名称命名调用来显式调用全局范围内的函数。在大多数情况下,这将是您应用的目标名称。如果这是在游乐场的上下文中,则使用Playground而不是模块名称。

func inSubfolder(file : String, root : String) -> Bool { ... }

extension String {
    func inSubfolder(root : String) -> Bool {
        return AppTargetName.inSubfolder(file : self, root : root)
    }
}