日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rust军用船指令_Rust基础学习笔记(五):Cargo与Crates.io

發布時間:2024/10/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rust军用船指令_Rust基础学习笔记(五):Cargo与Crates.io 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近復習鴿了幾天,今天繼續學,希望在考試之前搞定這個官方文檔 もうダメ。。。。

本章學習Cargo和Crates.io相關,內容有下:

自定義構建

向crates.io提交libraries

利用工作空間Workspace組織大型工程

從crates.io下載二進制庫

用自定義命令拓展Cargo

自定義構建

基礎

雖然構建方法已經預定義了,但是也可以自定義

Cargo使用兩個profile,一個是dev(用在單純build指令中),一個是release(用在cargo build --release中)。兩者都可以通過在Cargo.toml中添加[profile.*]標簽自定義:

[profile.dev]

opt-level = 0[profile.release]

opt-level = 3

[profile.release]

opt-level = 1    //Override!

這里的opt-level指編譯器的優化等級,數值為0-3,數值越高優化越多編譯更遲緩運行更高效。

向Crates.io提交Crate

通過三斜杠添加文件注釋

通過文件注釋讓別人明白該如何使用它,生成HTML文檔,支持Markdown格式

///#Example

///```

///let arg = 5;

///```

cargo doc?生成這個HTML文檔

cargo doc --open?在瀏覽器中打開你可能需要的文檔

文件注釋通常包括使用例、引發的錯誤/Panics與安全性(是否為unsafe)。可根據具體情況添加。

//考完試了,繼續摸

你也可以通過?cargo test?來運行注釋中的代碼塊,這些代碼將作為測試運行,用來確定例子與源碼的更新是否同步。

通過

//! ....//! ....

來完成對整個Crate的總括注釋。要注意這些注釋一般寫進src/lib.rs,在打開doc時直接顯示。

通過pub use完善公共API

可以方便用戶的使用,不用抽絲剝繭地調用類方法。

使用方法就是在需要使用的方法名前面加上 pub use self::...

舉例:

pub use self::kinds::PrimaryColor;

pub mod kinds {

pub fn PrimaryColor(){...}

}

調用時無第一句:

use art::kinds::PrimaryColor;

ust art::PrimaryColor;

真正提交自己的Crates:

首先要申請一個賬號

注意的是要在 crates.io/me/ 更改API密鑰并通過??$ cargo login [pwd]?登錄

編輯詳細信息(元數據)

文件:Cargo.toml

代碼:

[package]

name= "Whatever_u_like" //先到先得

version = "0.1.0"authors= ["Your Name "]

edition= "2020"description= "*#>>"license= "?" //許可證

[dependencies]

最后?$cargo publish?提交。同樣可以通過這個指令更新。

你可以yank一個版本來阻止用戶繼續使用它,無論是出于版本老舊還是嚴重漏洞,但是由于代碼實際上不會被刪除,要是想刪除還是用reset。通過undo來撤銷。

$cargo yank --vers 1.0.1$cargo yank--vers 1.0.1 --undo

使用Workspaces

不同的相關packages組成workspaces

新建一個文件夾,在里面添加文件Cargo.toml:

[workspace]

members=["adder",

]

然后build,就會得到名為adder的子文件夾,這是新建的package,具有完整的基本結構。同時會新建一個target文件夾,里面是所有源代碼的編譯后文件。

├── Cargo.lock├── Cargo.toml

├── adder

│ ├── Cargo.toml

│ └── src

│ └── main.rs

└── target

通過修改Cargo.toml和運行Cargo new來在工作空間里面創建新的Librarty Crate,不過要用--lib參數:

cargo new add-one --lib

添加依賴

比如你要在相同的工作區域里將add-one添加為adder的依賴,由于Cargo不默認工作區間的各crate互相依賴,因此要手動在adder的Cargo.toml里添加:

[dependencies]

add-one = { path = "../add-one" }

要想添加外部依賴,就要在相應的文件夾里添加Cargo.toml的依賴,最后在父文件夾的Cargo.lock保存相關信息。這樣做是保證各個Crate用的是相同版本的外部依賴,但是這個依賴只能在被聲明的區間里使用。添加方法:

[dependencies]

rand= "0.5.5"

同樣你可以添加一個測試,方法沒有什么特別的地方。

怎么下載別人的cargo

按官方文檔的說法,目前還只能安裝有Binary Target的包:

Binary Target:源碼可編譯為可執行程序

Library Target:自己不能單獨運行,可以和其他crate結合。

兩個target可以共存的!

下載到那里去了?  $PATH/bin  而且它會提示你的

怎么用?自然地把它當成cargo的指令參數就行了,這些包會成為你有用的工具。

后記

幾乎時隔一個月才再次開始Rust的學習,由于自己基礎不牢,再看這些不嚳天書。可能之后的進一步學習要待寫一些代碼暖暖手,并掌握相關知識后再行展開吧!感覺現在要是再進行下去的話恐怕自己都不知道自己在說些什么了。。。

總結

以上是生活随笔為你收集整理的rust军用船指令_Rust基础学习笔记(五):Cargo与Crates.io的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。