10

在他们使用的 Swift 包管理器的 Apple github 中

import func POSIX.isatty
import func libc.strerror_r
import var libc.EINVAL 
import var libc.ERANGE
import struct PackageModel.Manifest

资源

还有一个文件,其中唯一的代码是@_exported 源代码

@_exported import func libc.fileno

这是 Swift 3 的功能吗?我在 Swift 文档中找不到任何可以导入类型的地方,而@_exported.

4

1 回答 1

18

您只能导入模块的特定部分,而不是整个模块:

提供更详细的限制导入哪些符号 - 您可以指定特定的子模块或模块或子模块中的特定声明。当使用这种详细形式时,只有导入的符号(而不是声明它的模块)在当前范围内可用。

进口申报

例如将从模块import func POSIX.isatty导入函数而不是导入整个模块(这是大的)。isattyPOSIXPOSIX

@_exported属性以下划线开头。这意味着它是一个私有的 Swift 属性。不是功能,而是实现细节。简而言之,此属性允许您从另一个模块导出符号,就好像它来自您的模块一样。

于 2016-12-06T16:36:07.730 回答