- Rust游戲開發(fā)實(shí)戰(zhàn)
- (美)赫伯特·沃爾弗森
- 898字
- 2024-09-05 16:34:15
1.4.2 Hello,World程序
打開“Hello”項(xiàng)目下src/main.rs文件。Cargo已經(jīng)自動(dòng)編寫了必要的程序源代碼,以在終端上顯示出“Hello, World”。
接下來,請逐行仔細(xì)閱讀這個(gè)程序:
InstallingRust/HelloWorld/src/main.rs
? fn main() { ? println!("Hello, world!"); }
? main函數(shù)。main是一個(gè)特殊的函數(shù),標(biāo)記了整個(gè)程序的入口點(diǎn)。
定義main函數(shù)的語法如圖1-3所示。

圖1-3
? println!宏和字符串字面量,相關(guān)內(nèi)容參見下文的“打印文本”。
Rust代碼中有很多花括號({..}),這些花括號代表了作用域。作用域表示具有緊密聯(lián)系的一組代碼。在某個(gè)作用域中創(chuàng)建的變量只能存在于這個(gè)作用域內(nèi)——它們不會逃逸到作用域外,而且當(dāng)作用域結(jié)束時(shí),這些變量會被自動(dòng)清除掉。在這個(gè)例子中,打印“Hello, World”是在main函數(shù)的作用域中發(fā)生的。
main函數(shù)是一個(gè)比較特殊的函數(shù),扮演著Rust程序入口點(diǎn)的角色。無論程序中各個(gè)函數(shù)的排列順序是什么樣的,main函數(shù)總是第一個(gè)運(yùn)行。
打印文本
main函數(shù)的函數(shù)體包含了如下一行代碼:
println!("Hello,world!");
感嘆號標(biāo)記代表了println!是一個(gè)宏(macro)。Rust的宏系統(tǒng)非常強(qiáng)大——它允許使用一些在常規(guī)函數(shù)中不能使用的語法。這會使得宏的用法與眾不同——因此,Rust在宏的名稱里面加入了一個(gè)感嘆號,用來提示當(dāng)前正在調(diào)用的是一個(gè)宏。println!是一個(gè)非常靈活的宏,支持很多不同的顯示格式。當(dāng)前的這個(gè)例子并不涉及這些靈活的擴(kuò)展功能選項(xiàng),只需要打印出一些文字即可。
“Hello,world!”是一個(gè)字符串字面量(string literal)。之所以稱之為“字面量”,是因?yàn)樗硎镜氖菍懺陔p引號之間的原始文字,而且被存儲到程序中[5]。你可以在這里寫入任何其他的文本來替換掉默認(rèn)的“Hello,world!”。它還支持Unicode。“Привет, мир”和“こんにちは世界”都是可以顯示在屏幕上的合法的字符串字面量,甚至emoji表情也是可以在這里使用的。
[5] C++涉及較多的字面量,可以查閱相關(guān)資料進(jìn)行了解。“存儲到程序中”指的是在編譯后位于二進(jìn)制文件的靜態(tài)段中,而不是在數(shù)據(jù)段中。——譯者注
慎用難以輸入的符號
能夠隨意使用各種符號是很好的一件事,但是注意不要做過頭。筆者參加過一個(gè)項(xiàng)目,其中很多地方使用了美妙的數(shù)學(xué)符號,閱讀起來令人愉悅,letθ=π*Δ這樣的寫法是對底層數(shù)學(xué)公式很自然的表述。但是當(dāng)需要對代碼進(jìn)行修改時(shí),修改符號就變得很棘手了,因?yàn)楹芏喾栐阪I盤上都找不到。正是出于這個(gè)原因,Rust對函數(shù)名和變量名中可以使用的符號做了限制。
- 精通JavaScript+jQuery:100%動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)密碼
- Mastering JavaScript Object-Oriented Programming
- Learning Chef
- 架構(gòu)不再難(全5冊)
- iOS開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App Store上架
- Hands-On Microservices with Kotlin
- Rust Essentials(Second Edition)
- Hands-On Functional Programming with TypeScript
- 常用工具軟件立體化教程(微課版)
- C#程序設(shè)計(jì)教程(第3版)
- Extreme C
- Julia for Data Science
- 快速入門與進(jìn)階:Creo 4·0全實(shí)例精講
- Kubernetes源碼剖析
- 零基礎(chǔ)輕松學(xué)C++:青少年趣味編程(全彩版)