从swift中具有相同名称的本地函数调用全局函数

时间:2014-11-15 15:55:13

标签: swift

我有一个全局函数来记录消息和一个具有相同函数名的类,它应该调用全局函数。诀窍是使用模块名称(通常是xcode项目名称或目标名称)。但是如果源文件是多个目标的一部分,你应该怎么做呢?

func look(){
   //log stuff
}

class MyClass
{
  func look(){
    TargetName.look()
  }
}

另外,为什么String不符合Printable协议?看起来像一个奇怪的选择,因为这不适用于字符串:

func look(value : Printable?)
{
   println(value)
}

1 个答案:

答案 0 :(得分:1)

好吧,如果你可以帮助它,不要做第一件事。如果必须,将全局函数设置为结构的静态方法,并且您将能够以这种方式访问​​它们:

struct Logger {
    static func look(){
        //log stuff
    }
}

class MyClass {
    func look(){
        Logger.look()
    }
}

疯狂,而Swift中的String并非Printable。如果您想自己添加,可以这样做:

extension String: Printable {
    public var description: String { return self }
}

同时,提交雷达的时间到了!