Swift具有模塊化代碼,可以將它們分類爲模塊。Swift包和模塊之間有什麼區別?
但是你可以使用Swift Package Manager來獲取和安裝模塊。
「Swift包」和「Swift模塊」之間是否有區別?我應該什麼時候使用一個短語或其他?
Swift具有模塊化代碼,可以將它們分類爲模塊。Swift包和模塊之間有什麼區別?
但是你可以使用Swift Package Manager來獲取和安裝模塊。
「Swift包」和「Swift模塊」之間是否有區別?我應該什麼時候使用一個短語或其他?
模塊提到:夫特組織碼成模塊。每個模塊都指定一個名稱空間並強制執行訪問控制,該代碼的部分代碼可以在模塊外部使用。
程序可能將其所有代碼都放在一個單獨的模塊中,也可能將其他模塊作爲依賴項導入。除了少數幾個 系統提供的模塊(例如macOS上的Darwin或Linux上的Glibc),大多數依賴項都需要下載和構建代碼,以便使用 。
當您使用單獨的模塊代碼解決特定的問題時,該代碼可以在其他情況下重用。例如,提供網絡請求功能的 模塊可以是在照片共享應用程序和天氣應用程序之間共享的 。使用模塊 可讓您建立在其他開發人員的代碼之上,而不是 自己重新實現相同的功能。
程序包:包由Swift源文件和清單文件組成。名爲Package.swift的清單文件使用PackageDescription模塊定義了 包的名稱及其內容。
包裝有一個或多個目標。每個目標都指定一個產品,並且可能會聲明一個或多個依賴項。
Swift包是一個源代碼的集合...你可以把它看作一個自包含的項目,它有自己的版本和存儲庫。 Swift語言本身並不瞭解當前的包,它只是由Swift包管理器使用的概念。
迅速包可以包含一個或多個模塊夫特 - 每個夫特模塊是東西語言知道,並且迅捷模塊定義的之類的東西,例如訪問控制(public
,internal
,private
)的範圍。一個Swift包也可以包含其他類型的目標或模塊,例如它可以包含一個C源代碼體構建到一個庫中。
Swift包在某種意義上類似於Xcode項目,而Swift模塊類似於Xcode目標。
作爲具體的例子https://github.com/apple/example-package-fisheryates 是夫特包(如在頂層標誌着由Package.swift
),由它的URL識別,它包含有兩個源的單一夫特模塊: https://github.com/apple/example-package-fisheryates/tree/master/Sources。
謝謝,這個比喻非常有幫助 –
模塊是一個.framework還是一個由.swift文件組成的文件夾? – eonist