Rust中print和println的區(qū)別實例解析
print! 和 println! 的區(qū)別
Rust中的print!
和println!
宏均用于輸出內(nèi)容,兩者的核心差異在于是否自動追加換行符。
換行行為不同
print!
輸出后不換行,內(nèi)容會緊接在前一次輸出的末尾。println!
會在輸出后自動添加換行符(\n
),使后續(xù)輸出從新行開始。
代碼示例
fn main() { print!("Hello "); // 不換行 println!("World!"); // 換行 print!("數(shù)字: "); for i in 1..=5 { print!("{} ", i); } // 同一行輸出 println!(); // 手動換行 println!("第 1 行"); // 自動換行 println!("第 2 行"); }
輸出結(jié)果
Hello World!
數(shù)字: 1 2 3 4 5
第 1 行
第 2 行
適用場景
print!
的典型用途
- 同一行內(nèi)組合輸出多個變量或文本。
- 實現(xiàn)進度條等動態(tài)更新效果。
- 需精確控制輸出格式(如對齊)。
println!
的常規(guī)用途
- 輸出獨立完整的日志或調(diào)試信息。
- 需要每段內(nèi)容獨占一行的場景。
- 大多數(shù)默認輸出需求。
兩者均支持格式化參數(shù)(如{}
占位符),用法完全一致,僅換行行為不同。
Rust 輸出到命令行
在正式學習 Rust 語言以前,我們需要先學會怎樣輸出一段文字到命令行,這幾乎是學習每一門語言之前必備的技能,因為輸出到命令行幾乎是語言學習階段程序表達結(jié)果的唯一方式。
在之前的 Hello, World 程序中大概已經(jīng)告訴了大家輸出字符串的方式,但并不全面,大家可能很疑惑為什么 println!( "Hello World") 中的 println 后面還有一個 ! 符號,難道 Rust 函數(shù)之后都要加一個感嘆號?顯然并不是這樣。println 不是一個函數(shù),而是一個宏規(guī)則。這里不需要更深刻的挖掘宏規(guī)則是什么,后面的章節(jié)中會專門介紹,并不影響接下來的一段學習。
Rust 輸出文字的方式主要有兩種:println!() 和 print!()。這兩個"函數(shù)"都是向命令行輸出字符串的方法,區(qū)別僅在于前者會在輸出的最后附加輸出一個換行符。當用這兩個"函數(shù)"輸出信息的時候,第一個參數(shù)是格式字符串,后面是一串可變參數(shù),對應著格式字符串中的"占位符",這一點與 C 語言中的 printf 函數(shù)很相似。但是,Rust 中格式字符串中的占位符不是 "% + 字母" 的形式,而是一對 {}。
實例:runoob.rs 文件
fn main() { let a = 12; println!("a is {}", a); }
使用 rustc 命令編譯 runoob.rs 文件:
$ rustc runoob.rs # 編譯 runoob.rs 文件
編譯后會生成 runoob 可執(zhí)行文件:
$ ./runoob # 執(zhí)行 runoob
以上程序的輸出結(jié)果是:
a is 12
如果我想把 a 輸出兩遍,那豈不是要寫成:
println!("a is {}, a again is {}", a, a);
其實有更好的寫法:
println!("a is {0}, a again is {0}", a);
在 {} 之間可以放一個數(shù)字,它將把之后的可變參數(shù)當作一個數(shù)組來訪問,下標從 0 開始。
如果要輸出 { 或 } 怎么辦呢?格式字符串中通過 {{ 和 }} 分別轉(zhuǎn)義代表 { 和 }。但是其他常用轉(zhuǎn)義字符與 C 語言里的轉(zhuǎn)義字符一樣,都是反斜杠開頭的形式。
fn main() { println!("{{}}"); }
以上程序的輸出結(jié)果是:
{}
到此這篇關于Rust中print和println的區(qū)別的文章就介紹到這了,更多相關rust print和println區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Rust 數(shù)據(jù)分析利器polars用法詳解
這篇文章主要介紹了Rust 數(shù)據(jù)分析利器polars用法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08Rust 中的閉包之捕獲環(huán)境的匿名函數(shù)
這篇文章介紹了Rust編程語言中的閉包,包括閉包的定義、使用、捕獲環(huán)境中的變量、類型推斷與注解、與函數(shù)的比較以及實際應用,閉包具有捕獲環(huán)境、類型推斷和高效性等特性,是Rust中一個非常強大的工具,感興趣的朋友一起看看吧2025-02-02libbpf和Rust開發(fā)ebpf程序?qū)崙?zhàn)示例
這篇文章主要為大家介紹了libbpf和Rust開發(fā)ebpf程序?qū)崙?zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12