English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
До того как приступить к изучению языка Rust, нам нужно сначала научиться выводить текст в командную строку, это几乎是 навык, который необходим перед изучением каждого языка, так как вывод в командную строку几乎是 единственный способ выражения результатов программы на этапе изучения языка.
В предыдущем примере программы Hello, World, уже было рассказано о способах вывода строки, но это не было полно, возможно, многие из вас удивлены, почему после println!("Hello World") у println есть еще один символ !, неужели после каждого Rust функции нужно добавлять восклицательный знак? Естественно, это не так. println не функция, а макрос. Здесь не нужно углубляться в то, что такое макрос, это будет рассмотрено в后面的章节ах, и это не повлияет на следующее обучение.
Основные методы вывода текста в Rust: println!() и print!(). Эти "функции" являются методами вывода строк в командную строку, различие только в том, что前者 добавляет символ новой строки в конце вывода. При использовании этих "функций" для вывода информации, первым параметром является строка формата, а затем следуют переменные, которые соответствуют "заполнительным символам" в строке формата, что очень похоже на функцию printf в языке C. Однако, знаки форматирования в строках формата 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);
В фигурных скобках можно положить цифру, которая后将 переменные в виде массива, индекс begins с 0.
Если нужно вывести { или } Что же делать? В строке формата можно использовать {{ и }} Пробелы в фигурных скобках нужно экранировать. Однако другие часто используемые символы для escaping такие же, как и в языке C, они начинаются с обратной косой черты.
fn main() { println!("{{}}"); }
Результат выполнения программы:
{}