99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Rust 使用包、Crate 和模塊管理不斷增長的項(xiàng)目

2023-03-22 15:06 更新
ch07-00-managing-growing-projects-with-packages-crates-and-modules.md
commit c77d7a1279dbc7a9d76e80c5ac9d742dd529538c

當(dāng)你編寫大型程序時(shí),組織你的代碼顯得尤為重要。通過對(duì)相關(guān)功能進(jìn)行分組和劃分不同功能的代碼,你可以清楚在哪里可以找到實(shí)現(xiàn)了特定功能的代碼,以及在哪里可以改變一個(gè)功能的工作方式。

到目前為止,我們編寫的程序都在一個(gè)文件的一個(gè)模塊中。伴隨著項(xiàng)目的增長,你應(yīng)該通過將代碼分解為多個(gè)模塊和多個(gè)文件來組織代碼。一個(gè)包可以包含多個(gè)二進(jìn)制 crate 項(xiàng)和一個(gè)可選的 crate 庫。伴隨著包的增長,你可以將包中的部分代碼提取出來,做成獨(dú)立的 crate,這些 crate 則作為外部依賴項(xiàng)。本章將會(huì)涵蓋所有這些概念。對(duì)于一個(gè)由一系列相互關(guān)聯(lián)的包組成的超大型項(xiàng)目,Cargo 提供了 “工作空間” 這一功能,我們將在第十四章的 “Cargo Workspaces” 對(duì)此進(jìn)行講解。

我們也會(huì)討論封裝來實(shí)現(xiàn)細(xì)節(jié),這可以使你更高級(jí)地重用代碼:你實(shí)現(xiàn)了一個(gè)操作后,其他的代碼可以通過該代碼的公共接口來進(jìn)行調(diào)用,而不需要知道它是如何實(shí)現(xiàn)的。你在編寫代碼時(shí)可以定義哪些部分是其他代碼可以使用的公共部分,以及哪些部分是你有權(quán)更改實(shí)現(xiàn)細(xì)節(jié)的私有部分。這是另一種減少你在腦海中記住項(xiàng)目內(nèi)容數(shù)量的方法。

這里有一個(gè)需要說明的概念 “作用域(scope)”:代碼所在的嵌套上下文有一組定義為 “in scope” 的名稱。當(dāng)閱讀、編寫和編譯代碼時(shí),程序員和編譯器需要知道特定位置的特定名稱是否引用了變量、函數(shù)、結(jié)構(gòu)體、枚舉、模塊、常量或者其他有意義的項(xiàng)。你可以創(chuàng)建作用域,以及改變哪些名稱在作用域內(nèi)還是作用域外。同一個(gè)作用域內(nèi)不能擁有兩個(gè)相同名稱的項(xiàng);可以使用一些工具來解決名稱沖突。

Rust 有許多功能可以讓你管理代碼的組織,包括哪些內(nèi)容可以被公開,哪些內(nèi)容作為私有部分,以及程序每個(gè)作用域中的名字。這些功能。這有時(shí)被稱為 “模塊系統(tǒng)(the module system)”,包括:

  • Packages): Cargo 的一個(gè)功能,它允許你構(gòu)建、測試和分享 crate。
  • Crates :一個(gè)模塊的樹形結(jié)構(gòu),它形成了庫或二進(jìn)制項(xiàng)目。
  • 模塊Modules)和 use: 允許你控制作用域和路徑的私有性。
  • 路徑path):一個(gè)命名例如結(jié)構(gòu)體、函數(shù)或模塊等項(xiàng)的方式

本章將會(huì)涵蓋所有這些概念,討論它們?nèi)绾谓换ィ⒄f明如何使用它們來管理作用域。到最后,你會(huì)對(duì)模塊系統(tǒng)有深入的了解,并且能夠像專業(yè)人士一樣使用作用域!


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)