我有一个全局函数来记录消息和一个具有相同函数名的类,它应该调用全局函数。诀窍是使用模块名称(通常是xcode项目名称或目标名称)。但是如果源文件是多个目标的一部分,你应该怎么做呢?
func look(){
//log stuff
}
class MyClass
{
func look(){
TargetName.look()
}
}
另外,为什么String不符合Printable协议?看起来像一个奇怪的选择,因为这不适用于字符串:
func look(value : Printable?)
{
println(value)
}
答案 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 }
}
同时,提交雷达的时间到了!