Swift:希望对现有函数使用扩展
我定义了一个函数:Swift:希望对现有函数使用扩展,swift,Swift,我定义了一个函数: func inSubfolder_(file : String, root : String) -> Bool { ... } 我还希望将其作为扩展添加到字符串中: extension String { func inSubfolder(root : String) -> Bool { return inSubfolder_(file : self, root : root) } } 我喜欢使用相同的名称(不带“\”),但全局名
func inSubfolder_(file : String, root : String) -> Bool { ... }
我还希望将其作为扩展添加到字符串中:
extension String {
func inSubfolder(root : String) -> Bool {
return inSubfolder_(file : self, root : root)
}
}
我喜欢使用相同的名称(不带“\”),但全局名称需要声明为“全局”,这样扩展名称就不会尝试(递归地)访问自己。
我遗漏了什么?您可以通过使用模块名称命名调用,显式地在全局范围内调用函数。在大多数情况下,这将是应用程序的目标名称。如果这是在游乐场的上下文中,则应使用
游乐场
,而不是模块名称
func inSubfolder(file : String, root : String) -> Bool { ... }
extension String {
func inSubfolder(root : String) -> Bool {
return AppTargetName.inSubfolder(file : self, root : root)
}
}
通过使用模块名命名调用,可以显式调用全局作用域中的函数。在大多数情况下,这将是应用程序的目标名称。如果这是在游乐场的上下文中,则应使用
游乐场
,而不是模块名称
func inSubfolder(file : String, root : String) -> Bool { ... }
extension String {
func inSubfolder(root : String) -> Bool {
return AppTargetName.inSubfolder(file : self, root : root)
}
}
这些参数必须相同,因为参数不同,所以您应该可以使用相同的名称。这也是我的问题!:-)我认为应该,但事实并非如此。我得到一个错误“调用中的额外参数'file'。它试图进入自己!这些参数必须相同,因为参数不同,所以您应该可以使用相同的名称。这也是我的问题!:-)我认为应该,但事实并非如此。我得到一个错误“调用中的额外参数'file'。它试图进入自己!