Swift有模块化代码,可以分类为模块。
但您可以使用Swift Package Manager来获取和安装模块。
“Swift包”和“Swift模块”之间有什么区别吗?我应该何时使用一个短语或另一个短语?
答案 0 :(得分:16)
Swift包是源代码的集合......您可以将其视为一个自包含的项目,它有自己的版本和存储库。 Swift语言本身并不了解当前的包,它只是Swift包管理器使用的概念。
Swift包可以包含一个或多个Swift模块 - 每个Swift模块是语言所知道的东西,Swift模块定义了访问控制(public
等内容。 ,例如,internal
,private
)。 Swift包还可以包含其他类型的目标或模块,例如它可以包含要构建到库中的C源代码体。
Swift包在某种意义上类似于Xcode项目,而Swift模块类似于Xcode目标。
作为具体例子https://github.com/apple/example-package-fisheryates
是一个 Swift包(由顶层的Package.swift
表示),由其URL标识,它包含一个包含两个源的Swift模块:
https://github.com/apple/example-package-fisheryates/tree/master/Sources
答案 1 :(得分:0)
模块: Swift将代码组织到模块中。每个模块都指定一个名称空间,并对该代码的哪些部分强制执行访问控制 可以在模块外部使用。
程序可能将所有代码放在一个模块中,也可以 将其他模块导入为依赖项。除了极少数 系统提供的模块,例如macOS上的Darwin或Linux上的Glibc, 大多数依赖项都需要下载和构建代码才能实现 使用。
当您使用单独的模块来解决特定的代码时 问题,该代码可以在其他情况下重用。例如,a 提供网络请求功能的模块可以 在照片共享应用和天气应用之间共享。使用模块 让你建立在其他开发人员的代码之上,而不是 自己重新实现相同的功能。
包:包由Swift源文件和清单文件组成。名为Package.swift的清单文件定义了 使用PackageDescription模块打包软件包的名称及其内容。
包具有一个或多个目标。每个目标都指定一个产品和 可以声明一个或多个依赖项。