99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

Rust Hello, World!

2023-03-22 15:07 更新
ch01-02-hello-world.md
commit 3709acaf30b7e8e520c53e02aa8081f33f4a4c17

既然安裝好了 Rust,我們來編寫第一個(gè) Rust 程序。當(dāng)學(xué)習(xí)一門新語言的時(shí)候,使用該語言在屏幕上打印 Hello, world! 是一項(xiàng)傳統(tǒng),我們將沿用這一傳統(tǒng)!

注意:本書假設(shè)你熟悉基本的命令行操作。Rust 對于你的編輯器、工具,以及代碼位于何處并沒有特定的要求,如果你更傾向于使用集成開發(fā)環(huán)境(IDE),而不是命令行,請盡管使用你喜歡的 IDE。目前很多 IDE 都在一定程度上支持 Rust;查看 IDE 文檔以了解更多細(xì)節(jié)。Rust 團(tuán)隊(duì)一直致力于借助 ?rust-analyzer? 提供強(qiáng)大的 IDE 支持。詳見附錄 D。

創(chuàng)建項(xiàng)目目錄

首先創(chuàng)建一個(gè)存放 Rust 代碼的目錄。Rust 并不關(guān)心代碼的存放位置,不過對于本書的練習(xí)和項(xiàng)目來說,我們建議你在 home 目錄中創(chuàng)建 projects 目錄,并將你的所有項(xiàng)目存放在這里。

打開終端并輸入如下命令創(chuàng)建 projects 目錄,并在 projects 目錄中為 “Hello, world!” 項(xiàng)目創(chuàng)建一個(gè)目錄。

對于 Linux、macOS 和 Windows PowerShell,輸入:

$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world

對于 Windows CMD,輸入:

> mkdir "%USERPROFILE%\projects"
> cd /d "%USERPROFILE%\projects"
> mkdir hello_world
> cd hello_world

編寫并運(yùn)行 Rust 程序

接下來,新建一個(gè)源文件,命名為 main.rs。Rust 源文件總是以 .rs 擴(kuò)展名結(jié)尾。如果文件名包含多個(gè)單詞,那么按照命名習(xí)慣,應(yīng)當(dāng)使用下劃線來分隔單詞。例如命名為 hello_world.rs,而不是 helloworld.rs。

現(xiàn)在打開剛創(chuàng)建的 main.rs 文件,輸入示例 1-1 中的代碼。

文件名: main.rs

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

示例 1-1: 一個(gè)打印 Hello, world! 的程序

保存文件,并回到當(dāng)前目錄為“~/projects/hello_world”的終端窗口。在 Linux 或 macOS 上,輸入如下命令,編譯并運(yùn)行文件:

$ rustc main.rs
$ ./main
Hello, world!

在 Windows 上,輸入命令 .\main.exe,而不是 ./main

> rustc main.rs
> .\main.exe
Hello, world!

不管使用何種操作系統(tǒng),終端應(yīng)該打印字符串 Hello, world!。如果沒有看到這些輸出,回到安裝部分的 “故障排除” 小節(jié)查找有幫助的方法。

如果 Hello, world! 出現(xiàn)了,恭喜你!你已經(jīng)正式編寫了一個(gè) Rust 程序?,F(xiàn)在你成為一名 Rust 程序員,歡迎!

分析這個(gè) Rust 程序

現(xiàn)在,讓我們回過頭來仔細(xì)看看這個(gè) “Hello, world!” 程序。這是第一塊拼圖:

fn main() {

}

這幾行定義了一個(gè)名叫 main 的函數(shù)。main 函數(shù)是一個(gè)特殊的函數(shù):在可執(zhí)行的 Rust 程序中,它總是最先運(yùn)行的代碼。第一行代碼聲明了一個(gè)叫做 main 的函數(shù),它沒有參數(shù)也沒有返回值。如果有參數(shù)的話,它們的名稱應(yīng)該出現(xiàn)在小括號(hào) () 中。

函數(shù)體被包裹在 {} 中。Rust 要求所有函數(shù)體都要用花括號(hào)包裹起來。一般來說,將左花括號(hào)與函數(shù)聲明置于同一行并以空格分隔,是良好的代碼風(fēng)格。

注:如果你希望在 Rust 項(xiàng)目中保持一種標(biāo)準(zhǔn)風(fēng)格,可以使用名為 ?rustfmt ?的自動(dòng)格式化工具將代碼格式化為特定的風(fēng)格(更多內(nèi)容詳見附錄 D 中的 ?rustfmt?)。Rust 團(tuán)隊(duì)已經(jīng)在標(biāo)準(zhǔn)的 Rust 發(fā)行版中包含了這個(gè)工具,就像 ?rustc ?一樣。所以它應(yīng)該已經(jīng)安裝在你的電腦中了!

在 main 函數(shù)中有如下代碼:

println!("Hello, world!");

這行代碼完成這個(gè)簡單程序的所有工作:在屏幕上打印文本。這里有四個(gè)重要的細(xì)節(jié)需要注意。首先 Rust 的縮進(jìn)風(fēng)格使用 4 個(gè)空格,而不是 1 個(gè)制表符(tab)。

第二,println! 調(diào)用了一個(gè) Rust 宏(macro)。如果是調(diào)用函數(shù),則應(yīng)輸入 println(沒有!)。我們將在第十九章詳細(xì)討論宏?,F(xiàn)在你只需記住,當(dāng)看到符號(hào) ! 的時(shí)候,就意味著調(diào)用的是宏而不是普通函數(shù),并且宏并不總是遵循與函數(shù)相同的規(guī)則。

第三,"Hello, world!" 是一個(gè)字符串。我們把這個(gè)字符串作為一個(gè)參數(shù)傳遞給 println!,字符串將被打印到屏幕上。

第四,該行以分號(hào)結(jié)尾(;),這代表一個(gè)表達(dá)式的結(jié)束和下一個(gè)表達(dá)式的開始。大部分 Rust 代碼行以分號(hào)結(jié)尾。

編譯和運(yùn)行是彼此獨(dú)立的步驟

你剛剛運(yùn)行了一個(gè)新創(chuàng)建的程序,那么讓我們檢查此過程中的每一個(gè)步驟。

在運(yùn)行 Rust 程序之前,必須先使用 Rust 編譯器編譯它,即輸入 rustc 命令并傳入源文件名稱,如下:

$ rustc main.rs

如果你有 C 或 C++ 背景,就會(huì)發(fā)現(xiàn)這與 gcc 和 clang 類似。編譯成功后,Rust 會(huì)輸出一個(gè)二進(jìn)制的可執(zhí)行文件。

在 Linux、macOS 或 Windows 的 PowerShell 上,在 shell 中輸入 ls 命令可以看見這個(gè)可執(zhí)行文件。在 Linux 和 macOS,你會(huì)看到兩個(gè)文件。在 Windows PowerShell 中,你會(huì)看到同使用 CMD 相同的三個(gè)文件。

$ ls
main  main.rs

在 Windows 的 CMD 上,則輸入如下內(nèi)容:

> dir /B %= the /B option says to only show the file names =%
main.exe
main.pdb
main.rs

這展示了擴(kuò)展名為 .rs 的源文件、可執(zhí)行文件(在 Windows 下是 main.exe,其它平臺(tái)是 main),以及當(dāng)使用 CMD 時(shí)會(huì)有一個(gè)包含調(diào)試信息、擴(kuò)展名為 .pdb 的文件。從這里開始運(yùn)行 main 或 main.exe 文件,如下:

$ ./main # Windows 是 .\main.exe

如果這里的 main.rs 是上文所述的 “Hello, world!” 程序,那么在終端上就會(huì)打印出 Hello, world!。

如果你更熟悉動(dòng)態(tài)語言,如 Ruby、Python 或 JavaScript,則可能不習(xí)慣將編譯和運(yùn)行分為兩個(gè)單獨(dú)的步驟。Rust 是一種 預(yù)編譯靜態(tài)類型ahead-of-time compiled)語言,這意味著你可以編譯程序,并將可執(zhí)行文件送給其他人,他們甚至不需要安裝 Rust 就可以運(yùn)行。如果你給他人一個(gè) .rb、.py 或 .js 文件,他們需要先分別安裝 Ruby,Python,JavaScript 實(shí)現(xiàn)(運(yùn)行時(shí)環(huán)境,VM)。不過在這些語言中,只需要一句命令就可以編譯和運(yùn)行程序。這一切都是語言設(shè)計(jì)上的權(quán)衡取舍。

僅僅使用 rustc 編譯簡單程序是沒問題的,不過隨著項(xiàng)目的增長,你可能需要管理你項(xiàng)目的方方面面,并讓代碼易于分享。接下來,我們要介紹一個(gè)叫做 Cargo 的工具,它會(huì)幫助你編寫真實(shí)世界中的 Rust 程序。


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)