覆盖 Swift.print() 或跨所有模块共享功能

Overriding Swift.print() or sharing function across all modules

我的观点是扩展 Swift.print() 函数或编写我自己的自定义函数 ns_print(),它可以从所有模块 中获得而无需显式导入 .

因为我喜欢

public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
    let output = items.map { "\([=11=])" }.joined(separator: separator)
    Swift.print(output, terminator: terminator)
}

但它只在定义它的模块内部起作用。 我想在所有现有模块中共享此功能。

可能吗?有帮助吗?

不,这是不可能的,如果你想使用来自不同模块的函数,你必须导入那个模块。

默认的 print 函数是 Swift 模块的一部分,它会自动(隐式)导入所有 Swift 文件,这就是为什么它在任何地方都可用而无需显式导入模块。