欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Cargo工具高效創(chuàng)建Rust項目

 更新時間:2022年08月11日 16:39:20   作者:微涼秋意  
這篇文章主要介紹了使用Cargo工具高效創(chuàng)建Rust項目,本文有關(guān)Cargo工具的使用和Rust輸入輸出知識感興趣的朋友一起看看吧

前言

本文緊跟上篇Rust博文內(nèi)容,講解Cargo工具在Rust項目創(chuàng)建時的妙用,手把手教你使用Cargo工具在黑窗口創(chuàng)建項目。此外,創(chuàng)建項目之后,簡單的做一個Rust語言中輸入輸出的測試,上文提到學好Rust語言的方法就是一步一步打基礎(chǔ),因此仍要潛心修煉,打牢基礎(chǔ)。

一、功能強大的Cargo工具

1、Cargo工具是什么?

  • Cargo是Rust 的構(gòu)建系統(tǒng)和包管理工具,主要功能包括:
    • 創(chuàng)建和管理 Rust 的模塊系統(tǒng)
    • 下載和管理依賴庫
    • 調(diào)用rustc或其他構(gòu)建工具來構(gòu)建項目
  • 安裝Rust 的時候會自動安裝Cargo
    • 驗證的命令:cargo --version

2、使用Cargo命令創(chuàng)建 hello_cargo 項目

命令:cargo new hello_cargo

其中code .是VSC工具的命令,意思是使用他來打開項目文件:

可以看到Cargo工具為我們生成了其他的文件,具體看一下都是什么作用:

自動創(chuàng)建了一個新目錄hello_cargo,包含:

  • Cargo.toml
  • src目錄
    • main.rs
  • 初始化了一個新的Git倉庫:.gitignore
    • 可以使用其他的vcs(版本控制系統(tǒng))
    • 或者不適用vcs:cargo new 項目名 --vcs

3、項目文件目錄里各文件的內(nèi)容和特點

  • Cargo.toml
  • TOML(Tom’s Obvious,Minimal Language)格式,存放Cargo的配置

  • [package],是一個區(qū)域標題,表示下方內(nèi)容是用來配置包的(package)
  • name:項目名
  • version:項目版本
  • edition:使用的Rust版本
  • [dependencies]
  • 另一個區(qū)域的開始,它會列出項目的依賴項。
  • 在Rust里,代碼的包寫做:crate

2.src/main.rs

  • cargo生成的 main.rs 在src目錄下,此外源代碼都應該放在src目錄下
  • 而cargo.toml在項目頂層下
  • 頂層目錄可以放置:RENAME、許可信息、配置文件等
  • 將非cargo創(chuàng)建的項目轉(zhuǎn)化為cargo的方法:
  • 把源代碼移動到src里面
  • 創(chuàng)建cargo.toml并填寫相應的配置

3.Cargo.lock

  • 第一次執(zhí)行Cargo build命令會在頂層目錄生成 cargo.lock文件
  • 該文件負責追蹤項目依賴的精確版本
  • 不需要手動修改此文件

4、Cargo 常用命令

  • cargo build
  • 創(chuàng)建可執(zhí)行文件:target\debug\hello_cargo.exe
  • cargo run
  • 構(gòu)建和運行cargo項目,編譯代碼+執(zhí)行結(jié)果
  • 如果之前編譯過且源碼沒有發(fā)生改變,則會直接運行二進制文件
  • cargo check
  • 檢查代碼,確保能夠通過編譯,但是不產(chǎn)生任何可執(zhí)行文件
  • cargo check 要比 cargo build 快得多
  • 編寫代碼得時候可以周期性得使用cargo check命令檢查代碼,提高效率
  • cargo build --release
  • 一共兩種配置:
  • 開發(fā)使用 :cargo build
  • 正式發(fā)布: cargo build --release
  • 為發(fā)布構(gòu)建,編譯時會進行優(yōu)化
  • 代碼運行速度會更快,但是編譯時間長
  • 會在target/release 目錄下生成可執(zhí)行文件,而不是 target/debug

二、Rust 語言的輸入輸出

1、輸入輸出測試

源碼:

use std::io;
fn main() {
    println!("測試輸入輸出功能");
    println!("從鍵盤輸入一個數(shù)字:");

    let mut a=String::new();

    io::stdin().read_line(&mut a).expect("無法讀取行");
    
    println!("輸出結(jié)果為:{}",a);
}

運行效果:

2、具體代碼解析

接下來把不熟悉的代碼依次解釋:

let mut a=String::new();
 

let用來聲明變量,mut代表該變量值可修改,String::new()意思是調(diào)用String類的實例。

  • 在Rust 中默認變量不可修改,加上mut 才可以被修改
  • new 在Rust 中常用來創(chuàng)建類型實例
  • 這句話的意思就是將一個空白的字符串綁定到可變的字符串變量a上
use std::io;
io::stdin().read_line(&mut a).expect("無法讀取行");

use用來引入庫,std::io在Rust 中代表標準的輸入輸出,整體可理解為c中的#include<stdio.h>,
在io庫調(diào)用stdin()類里的read_line()方法,而該方法需要傳入可變字符串,因此將 &mut a傳入,
為什么要加地址符&呢,這里啊用到了C++里的引用,這樣參數(shù)列表里字符串的變化會修飾實參a的變化,且不會產(chǎn)生副本,安全高效。最后還有一個ecpect()方法,read_line()方法會返回一個Result枚舉類型,含有Ok 和 Err 兩個變體。

  • 如果Result返回的是Err,那么expect()方法就會中斷整行代碼并打印expect里的信息。
  • 如果返回的是OK,那么就會把read_line()方法中得到的值賦給OK一并返回給用戶。
println!("輸出結(jié)果為:{}",a);

類似于c 里的 printf("輸出結(jié)果為%d",a);上面的{}是一個占位符,輸出的時候會被后面變量的值取代,有幾個{}后面就有多少變量。

到此這篇關(guān)于使用Cargo工具高效創(chuàng)建Rust項目的文章就介紹到這了,更多相關(guān)Rust輸入輸出語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 從迷你todo?命令行入門Rust示例詳解

    從迷你todo?命令行入門Rust示例詳解

    這篇文章主要為大家介紹了從一個迷你todo命令行入門Rust的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Go調(diào)用Rust方法及外部函數(shù)接口前置

    Go調(diào)用Rust方法及外部函數(shù)接口前置

    這篇文章主要為大家介紹了Go調(diào)用Rust方法及外部函數(shù)接口前置示例實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Rust 語言中的 into() 方法及代碼實例

    Rust 語言中的 into() 方法及代碼實例

    在 Rust 中,into() 方法通常用于將一個類型的值轉(zhuǎn)換為另一個類型,這通常涉及到資源的所有權(quán)轉(zhuǎn)移,本文給大家介紹Rust 語言中的 into() 方法及代碼實例,感謝的朋友跟隨小編一起看看吧
    2024-03-03
  • Rust語言之結(jié)構(gòu)體和枚舉的用途與高級功能詳解

    Rust語言之結(jié)構(gòu)體和枚舉的用途與高級功能詳解

    Rust 是一門注重安全性和性能的現(xiàn)代編程語言,其中結(jié)構(gòu)體和枚舉是其強大的數(shù)據(jù)類型之一,了解結(jié)構(gòu)體和枚舉的概念及其高級功能,將使你能夠更加靈活和高效地處理數(shù)據(jù),本文將深入探討 Rust 中的結(jié)構(gòu)體和枚舉,并介紹它們的用途和高級功能
    2023-10-10
  • rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例

    rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例

    這篇文章主要為大家介紹了rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 在Rust中編寫自定義Error的詳細代碼

    在Rust中編寫自定義Error的詳細代碼

    Result<T, E> 類型可以方便地用于錯誤傳導,Result<T, E>是模板類型,實例化后可以是各種類型,但 Rust 要求傳導的 Result 中的 E 是相同類型的,所以我們需要編寫自己的 Error 類型,本文給大家介紹了在Rust中編寫自定義Error的詳細代碼,需要的朋友可以參考下
    2024-01-01
  • 利用rust實現(xiàn)一個命令行工具

    利用rust實現(xiàn)一個命令行工具

    這篇文章主要為大家詳細介紹了如何使用?Rust?和?clap?4.4.0?創(chuàng)建一個命令行工具?my_dev_tool,文中的示例代碼講解詳細,需要的小伙伴可以參考下
    2023-12-12
  • MacBook Pro安裝rust編程環(huán)境的過程

    MacBook Pro安裝rust編程環(huán)境的過程

    rustup是一個用于管理Rust版本和工具鏈的工具,這篇文章主要介紹了MacBook Pro安裝rust編程環(huán)境的過程,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    在 Rust 中, 如果一個類型實現(xiàn)了 Iterator, 那么它會被同時實現(xiàn) IntoIterator, 具體邏輯是返回自身, 因為自身就是迭代器,這篇文章主要介紹了Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法,需要的朋友可以參考下
    2023-12-12
  • 一文學會Rust語言如何操作JSON

    一文學會Rust語言如何操作JSON

    JSON在Web開發(fā)中被廣泛應用于數(shù)據(jù)交換,本文主要介紹了Rust語言操作JSON,包括序列化、反序列化、JSON創(chuàng)建等多個方面,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03

最新評論