上QQ阅读APP看书,第一时间看更新
3.1 输出到命令行
在正式学习Rust语言以前,需要先学会怎样输出一段文字到命令行,这几乎是学习每一门语言之前必备的技能,因为输出到命令行几乎是语言学习阶段程序表达结果的唯一方式。
在之前的“Hello, Rust!”程序中已经告诉了大家输出字符串的方式,但并不全面,大家可能很疑惑为什么“println!( "Hello World")”中的println后面还有一个“!”符号,难道Rust函数之后都要加一个感叹号?显然并不是这样。println不是一个函数,而是一个宏规则。这里不需要更深刻地挖掘宏规则是什么,后面的章节中会专门介绍,并不影响接下来的学习。
Rust输出文字的方式主要有两种:“println!()”和“print!()”。这两个“函数”都是向命令行输出字符串的方法,区别仅在于前者会在输出的最后附加输出一个换行符。当用这两个“函数”输出信息的时候,第一个参数是格式字符串,后面是一串可变参数,对应着格式字符串中的“占位符”,这一点与C语言中的printf函数很相似。但是,Rust中格式字符串中的占位符不是“%*”的形式,而是一对“{}”。
fn main() { let a = 12; println!("a is {}", a); }
以上程序的输出结果是:
a is 12
如果想把a输出两遍,并不是要写成:
println!("a is {}, a again is {}", a, a);
而是有更好的写法:
println!("a is {0}, a again is {0}", a);
在“{}”之间可以放一个数字,它将把之后的可变参数当作一个数组来访问,下标从0开始。
如果要输出“{”或“}”怎么办呢?格式字符串中通过“{{”和“}}”分别转义代表“{”和“}”。但是其他常用转义字符与C语言里的转义字符一样,都是“\”开头的形式。
fn main() { println!("{{}}"); }
以上程序的输出结果是:
{}