English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Rust 输出到命令行

Bevor wir uns mit der Rust-Sprache auseinandersetzen, müssen wir zunächst lernen, wie man Text in die Kommandozeile ausgibt, was fast eine obligatorische Fähigkeit ist, die vor dem Erlernen jeder Sprache erforderlich ist, da die Ausgabe in die Kommandozeile fast das einzige Mittel ist, um die Ergebnisse des Programmierens zu vermitteln.

In den vorherigen Hello, World-Programmen wurde den Leuten wahrscheinlich bereits die Möglichkeit, Zeichenfolgen auszugeben, erklärt, aber nicht vollständig. Viele könnten sich fragen, warum im println!( "Hello World")-Aufruf nach println! noch ein !-Zeichen folgt, muss nach jeder Rust-Funktion wirklich ein Ausrufezeichen folgen? Offensichtlich ist das nicht der Fall. println ist keine Funktion, sondern eine Makro-Regel. Hier muss nicht tief in die Makro-Regeln eingetaucht werden, dies wird in den folgenden Kapiteln gesondert behandelt und beeinflusst nicht das nächste Kapitel.

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!("{{}}"); 
}

以上程序的输出结果是:

{}