覆盖 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 文件,这就是为什么它在任何地方都可用而无需显式导入模块。
我的观点是扩展 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 文件,这就是为什么它在任何地方都可用而无需显式导入模块。