中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)費(fèi)用推薦網(wǎng)絡(luò)專(zhuān)業(yè)網(wǎng)絡(luò)服務(wù)商電話(huà)

網(wǎng)站建設(shè)費(fèi)用推薦網(wǎng)絡(luò)專(zhuān)業(yè),網(wǎng)絡(luò)服務(wù)商電話(huà),藍(lán)色管理系統(tǒng)網(wǎng)站模版,新余市建設(shè)廳網(wǎng)站以下內(nèi)容為本人的學(xué)習(xí)筆記,如需要轉(zhuǎn)載,請(qǐng)聲明原文鏈接 微信公眾號(hào)「ENG八戒」https://mp.weixin.qq.com/s/ceMTUzRjDoiLwjn_KfZSrg 這幾年 Rust 可謂是炙手可熱的新興編程語(yǔ)言了,而且被投票為最受程序員喜愛(ài)的語(yǔ)言。它很現(xiàn)代,專(zhuān)門(mén)…

以下內(nèi)容為本人的學(xué)習(xí)筆記,如需要轉(zhuǎn)載,請(qǐng)聲明原文鏈接 微信公眾號(hào)「ENG八戒」https://mp.weixin.qq.com/s/ceMTUzRjDoiLwjn_KfZSrg

這幾年 Rust 可謂是炙手可熱的新興編程語(yǔ)言了,而且被投票為最受程序員喜愛(ài)的語(yǔ)言。它很現(xiàn)代,專(zhuān)門(mén)為了性能、可靠和生產(chǎn)力而設(shè)計(jì),說(shuō)人話(huà)就是非???#xff0c;不容易崩潰,開(kāi)發(fā)效率高。

那么,如此熱門(mén)的計(jì)算機(jī)語(yǔ)言,它如何去構(gòu)建軟件和管理構(gòu)建工程呢?

Rust 語(yǔ)言的開(kāi)發(fā)團(tuán)隊(duì)提供了標(biāo)準(zhǔn)方案,利用 rust 自帶的一個(gè)包 Cargo 幫助開(kāi)發(fā)人員靈活高效地構(gòu)建代碼。Cargo 提供下載各式各樣的庫(kù)或者工程依賴(lài)項(xiàng),發(fā)布自己的包和上傳到 crates.io 共享給所有開(kāi)發(fā)者等。

下面讓我們一起來(lái)看看什么是 cargo,它可以如何幫助我們開(kāi)發(fā)者構(gòu)建自己的 rust 工程。關(guān)于怎么安裝 rust 和 cargo 相關(guān)可以查看八戒的另一篇文章《簡(jiǎn)明快速配置 Rust 工具鏈》。

本文以下演示都是基于 ubuntu 18.04.6。

手動(dòng)構(gòu)建和運(yùn)行

先來(lái)看看直接使用 rust 的編譯器 rustc 編譯 hello world 示例。準(zhǔn)備一個(gè) rust 源碼文件,輸入以下內(nèi)容

fn main() {println!("Hello rust world!");
}

rust 源碼文件的后綴為 (.rs),所以上面的文件保存為 hello.rs。

調(diào)用 rustc 編譯文件 hello.rs

$ rustc hello.rs

編譯沒(méi)有錯(cuò)誤返回意味著成功結(jié)束,這時(shí)生成了可執(zhí)行文件 hello,與輸入源文件同名

$ ll
total 4544
drwxrwxrwx 1 user user     512 Nov 14 00:55 ./
drwxrwxrwx 1 user user     512 Nov 14 00:54 ../
-rwxrwxrwx 1 user user 4652168 Nov 14 00:55 hello
-rwxrwxrwx 1 user user      50 Nov 14 00:54 hello.rs

再手動(dòng)執(zhí)行文件 hello 看看輸出

$ ./hello
Hello rust world!

這樣的構(gòu)建過(guò)程,一切挺順利的,尤其是我們突然靈光一閃,腦袋有個(gè)想法需要快速驗(yàn)證時(shí),這樣也不錯(cuò)。但是這只是編譯了一個(gè)源碼文件,要是我們的開(kāi)發(fā)工程異常龐大,源碼文件去到上百上千個(gè)文件時(shí),再使用編譯器 rustc 手動(dòng)編譯真的太費(fèi)勁啦。就好像現(xiàn)在的大型 C/C++ 工程基本都用 cmake 管理一樣,咱的 rust 工程有 cargo。

創(chuàng)建一個(gè) package

Cargo 是 rust 團(tuán)隊(duì)的指定構(gòu)建系統(tǒng)和包管理器,可以利用它快速創(chuàng)建一個(gè)空的 package 工程,執(zhí)行構(gòu)建的時(shí)候 cargo 會(huì)根據(jù)配置文件內(nèi)容自動(dòng)下載依賴(lài)項(xiàng)等。相信大伙在碰到 rust 的另一個(gè)概念 crate 是會(huì)感到很困惑,其實(shí)一般情況下 package 都可以被當(dāng)做是 crate,就是說(shuō)可以互換。

下面來(lái)看看怎么創(chuàng)建新 package 工程

$ cargo new hello_rustCreated binary (application) `hello_rust` package

上面示例使用了 cargo new 指令創(chuàng)建一個(gè)名字是 hello_rust 的新 package 工程,然后用 tree 指令看看都自動(dòng)創(chuàng)建了哪些文件和路徑

$ cd hello_rust/
$ tree .
.
├── Cargo.toml
└── src└── main.rs1 directory, 2 files

可以看到有個(gè) Cargo.toml 文件,它是 cargo 構(gòu)建 package 工程的配置文件,不過(guò)看起來(lái)有點(diǎn)陌生,先繼續(xù)看其它內(nèi)容。

在 src 文件夾下有個(gè) rust 源碼文件 main.rs,打開(kāi)看看里邊的內(nèi)容

$ cat src/main.rs 
fn main() {println!("Hello, world!");
}

原來(lái) main.rs 包含了一個(gè) hello world 的示例代碼,真的是一步到位。

回過(guò)頭來(lái)再看 Cargo.toml

$ cat Cargo.toml 
[package]
name = "hello_rust"
authors = ["ENG八戒"]
version = "0.1.0"
edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]

可以看到文件 Cargo.toml 內(nèi)包含了多個(gè) section,比如 package、dependencies。

在 package 字段,包含了工程的名字 name,作者 authors,工程版本 version,rust 版本等。格式是鍵值對(duì)的形式,= 后邊的值用 [] 界定表示該值類(lèi)型是列表的形式,內(nèi)容可以是多個(gè),比如軟件工程的作者就可以有多個(gè)。

而 dependencies 字段用于填寫(xiě)該工程的依賴(lài)項(xiàng),依賴(lài)項(xiàng)就是我們?cè)陂_(kāi)發(fā)軟件時(shí),有很多的內(nèi)容可以直接借用別人的成果,或者避免浪費(fèi)自己的時(shí)間重復(fù)造輪子。而別人的成果通常以包的形式提供,我們只需要在這個(gè)配置文件的 dependencies 字段里填寫(xiě)對(duì)應(yīng)的包信息。

假設(shè)依賴(lài)項(xiàng)中包含產(chǎn)生隨機(jī)數(shù)的 rand 包,可以如下填寫(xiě)

...
[dependencies]
rand = "0.8.5"

上面填寫(xiě)的依賴(lài)項(xiàng)內(nèi)容不僅有包名,還有具體的版本。但是,我們?cè)趺粗垃F(xiàn)時(shí)有哪些具體的包和版本呢?

可以用 cargo search 指令,后邊加上對(duì)應(yīng)的模糊包名,這樣 cargo 就會(huì)從 crates.io 查找可用包并打印,你再?gòu)闹羞x一個(gè)合適的

$ cargo search rand
rand = "0.8.5"              # Random number generators and other randomness functionality. 
bevy_rand = "0.4.0"         # A plugin to integrate rand for ECS optimised RNG for the Bevy game engine.
tinyrand = "0.5.0"          # Lightweight RNG specification and several ultrafast implementations in Rust.
random_derive = "0.0.0"     # Procedurally defined macro for automatically deriving rand::Rand for structs and enums
tera-rand = "0.2.0"         # A suite of random data generation functions for the Tera template engine
tera-rand-cli = "0.2.0"     # A CLI tool for generating a feed of random data from a Tera template
faker_rand = "0.1.1"        # Fake data generators for lorem ipsum, names, emails, and more
rand_derive2 = "0.1.21"     # Generate customizable random types with the rand crate
fake-rand-test = "0.0.0"    # Random number generators and other randomness functionality.
ndarray-rand = "0.14.0"     # Constructors for randomized arrays. `rand` integration for `ndarray`.
... and 1219 crates more (use --limit N to see more)

未完待續(xù)…

http://www.risenshineclean.com/news/56634.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)改版升級(jí)seo雙標(biāo)題軟件
  • 網(wǎng)站開(kāi)發(fā)哪里關(guān)鍵詞搜索技巧
  • wordpress 導(dǎo)入 附件seo系統(tǒng)源碼
  • 做網(wǎng)站前臺(tái)需要什么技能模板網(wǎng)站建設(shè)
  • 網(wǎng)站設(shè)計(jì)制作費(fèi)用google網(wǎng)頁(yè)版
  • 外包推廣服務(wù)搜索引擎優(yōu)化專(zhuān)員
  • 做網(wǎng)站用那一種語(yǔ)言最好推廣營(yíng)銷(xiāo)
  • 百度廣告平臺(tái)河北seo推廣
  • 教做面包的網(wǎng)站seo營(yíng)銷(xiāo)方案
  • 旅行社建網(wǎng)站如何自己做網(wǎng)站
  • wordpress香港主機(jī)推薦北京seo排名廠(chǎng)家
  • nat123做網(wǎng)站廈門(mén)百度快速優(yōu)化排名
  • 做的網(wǎng)站手機(jī)打不開(kāi)怎么回事啊徐州網(wǎng)站建設(shè)
  • 貿(mào)易公司如何做英文網(wǎng)站保定seo網(wǎng)絡(luò)推廣
  • 網(wǎng)站文字超鏈接怎么做seo 360
  • 網(wǎng)站建設(shè)設(shè)計(jì)設(shè)計(jì)公司哪家好軟文推廣是什么意思?
  • 百度seo培訓(xùn)課程廈門(mén)seo服務(wù)
  • 做網(wǎng)站要買(mǎi)數(shù)據(jù)庫(kù)安卓?jī)?yōu)化大師hd
  • 個(gè)人博客系統(tǒng)wordpress電腦優(yōu)化軟件推薦
  • 做網(wǎng)站的技術(shù)關(guān)鍵網(wǎng)站如何注冊(cè)
  • wordpress多站點(diǎn)子網(wǎng)站css錯(cuò)誤手機(jī)百度賬號(hào)登錄入口
  • 好點(diǎn)得手機(jī)網(wǎng)站托管一套完整的運(yùn)營(yíng)方案
  • 南陽(yáng)網(wǎng)站建設(shè)seo品牌網(wǎng)站建設(shè)方案
  • wordpress調(diào)用當(dāng)前頁(yè)面鏈接鄭州seo優(yōu)化外包熱狗網(wǎng)
  • 電子商務(wù)網(wǎng)站建設(shè)項(xiàng)目規(guī)劃書(shū)排名點(diǎn)擊工具
  • 馬鞍山網(wǎng)站建設(shè)seo網(wǎng)站推廣可以自己搞嗎
  • 工作室網(wǎng)站建設(shè)方案模板seo國(guó)外英文論壇
  • 免費(fèi)做問(wèn)卷的網(wǎng)站好精準(zhǔn)營(yíng)銷(xiāo)理論
  • c 新手一個(gè)人做網(wǎng)站最有效的15個(gè)營(yíng)銷(xiāo)方法
  • 簡(jiǎn)潔的企業(yè)網(wǎng)站無(wú)錫seo關(guān)鍵詞排名