2017-02-16 7 views
1

Есть ли лучший способ печати/формат строки отступа кроме того делает:Как форматировать строки с отступом на основе целого числа?

let text_to_indent = "Indented text!"; 
for i in 0..indent { 
    print!(" "); 
} 
println!("{}", text_to_indent); 

ли Руст более удобный способ сделать это?

+1

Для справки [синтаксис форматирования] (https://doc.rust-lang.org/std/fmt/#syntax). –

ответ

7
println!("{:indent$}Indented text!", "", indent=indent); 

(Playground)

Первый заполнитель делает отступ. Он напечатает аргумент 0 (пустая строка, "") с заполнением (с пробелами), как указано в аргументе ident.

Печать переменной можно сделать так:

println!("{:indent$}{}", "", text_to_indent, indent=level); 
+0

А хорошо! Я посмотрел на минимальный параметр 'width' в синтаксисе форматирования, но не думал об использовании этого в сочетании с пустой строкой. –

+0

@ MatthieuM. это немного хаки, и мне это действительно не нравится ... но он работает^_^ –

+1

Другой ответ, заданный в IRC: 'format! (" {} {} ", format_args! (" {:> 1 $} ", «", 4), * * indented * text ")' – ideasman42

Смежные вопросы