Вывод Rust в командную строку

Прежде чем приступить к формальному изучению языка Rust, нам нужно сначала научиться выводить фрагмент текста в командную строку. Это почти обязательный навык перед изучением любого языка, потому что вывод в командную строку — почти единственный способ для программ выражать результаты на этапе изучения языка.

В предыдущей программе Hello, World мы, вероятно, уже показали всем, как выводить строки, но это не всеобъемлюще. Возможно, вы задаётесь вопросом, почему после println в println!( "Hello World") стоит ещё один!символ? Неужели каждой функции Rust нужен восклицательный знак после неё? Очевидно, нет. println — это не функция, а макроправило. Не нужно углубляться в то, что такое макроправило; оно будет представлено в следующей главе, и это не повлияет на предстоящее обучение.

Rust в основном имеет два способа вывода текста:println!()иprint!(). Эти две "функции" — обе являются способами вывода строк в командную строку. Единственное отличие в том, что первая добавляет символ новой строки в конце вывода. При использовании этих двух "функций" для вывода информации первый параметр — это строка формата, за которой следует ряд переменных параметров, соответствующих "заполнителям" в строке формата. Это очень похоже на функцию printf в языке C. Однако заполнители в строке формата Rust не"% + буква"в форме, а скорее пара{}。

Пример: файл example.rs

fn main() {
    let a = 12;
    println!("a is {}", a);
}

Используйте командуrustc, чтобы скомпилировать файл example.rs:

$ rustc example.rs   # 编译 example.rs 文件

После компиляции будет сгенерированexampleисполняемый файл:

$ ./example    # 执行 example

Вывод вышеприведённой программы:

a is 12 

Если я хочу вывести a дважды, разве мне не придётся написать:

println!("a is {}, a again is {}", a, a); 

На самом деле есть лучший способ записать это:

println!("a is {0}, a again is {0}", a); 

В{}промежутке между ними можно поставить число, которое будет рассматривать следующие переменные параметры как массив для доступа, с индексами, начинающимися с 0.

Если вы хотите вывести{или}что делать? В строке формата с помощью{{и}}экранирования, чтобы представить { и } соответственно. Но другие распространённые escape-символы такие же, как в языке C, все в форме, начинающейся с обратной косой черты.

fn main() { 
    println!("{{}}"); 
} 

Вывод вышеприведённой программы:

{}
Другие расширения