Вывод Rust в командную строку
Прежде чем приступить к формальному изучению языка Rust, нам нужно сначала научиться выводить фрагмент текста в командную строку. Это почти обязательный навык перед изучением любого языка, потому что вывод в командную строку — почти единственный способ для программ выражать результаты на этапе изучения языка.
В предыдущей программе Hello, World мы, вероятно, уже показали всем, как выводить строки, но это не всеобъемлюще. Возможно, вы задаётесь вопросом, почему после println в println!( "Hello World") стоит ещё один!символ? Неужели каждой функции Rust нужен восклицательный знак после неё? Очевидно, нет. println — это не функция, а макроправило. Не нужно углубляться в то, что такое макроправило; оно будет представлено в следующей главе, и это не повлияет на предстоящее обучение.
Rust в основном имеет два способа вывода текста:println!()иprint!(). Эти две "функции" — обе являются способами вывода строк в командную строку. Единственное отличие в том, что первая добавляет символ новой строки в конце вывода. При использовании этих двух "функций" для вывода информации первый параметр — это строка формата, за которой следует ряд переменных параметров, соответствующих "заполнителям" в строке формата. Это очень похоже на функцию printf в языке C. Однако заполнители в строке формата Rust не"% + буква"в форме, а скорее пара{}。
Пример: файл example.rs
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!("{{}}");
}
Вывод вышеприведённой программы:
{} Другие расширения