Перейти к содержимому

Уроки · 64

Строки

В уроке «Hello World» уже была строка — "Hello, world!", просто тогда было не до объяснений, нужно было только запустить программу. Сейчас разберёмся, что это такое.

Строка — это просто текст: какие угодно символы в кавычках. До сих пор в коде встречались только числа (f32) да bool — строка это новый вид значения, для текста, а не для счёта:

let greeting = "Привет!";

Даже если внутри кавычек цифры, это всё равно текст, а не число: "42" нельзя сложить с другим числом, как обычное 42, — для Rust это просто два символа, '4' и '2', а не число сорок два.

println! из «Hello World» выводил готовый текст целиком. А если нужно вставить в текст ещё и значение переменной, внутри строки пишут пустые фигурные скобки {} — туда и подставится следующий аргумент:

let count = 5;
println!("Кружков: {}", count);

{} сам умеет показать число — отдельно превращать его в строку для этого не нужно. В консоль попадёт Кружков: 5.

Если println! сам справляется с числом, зачем тогда вообще нужен способ превратить число в строку? Иногда нужна не печать, а сама строка целиком — например, передать её туда, где ждут именно строку, а не число. Это понадобится в последующих уроках — например, когда будем рисовать текст на экране: та функция принимает только готовую строку. Для этого у чисел есть метод .to_string():

let count = 5;
let count_text = count.to_string();

Было число 5, стало — строка "5". Выглядит так же, но это уже не число: умножить его больше нельзя, зато можно показать рядом с другим текстом или передать туда, где ждут строку.

src/main.rs
fn main() {
let count = 5;
println!("Кружков: {}", count);
let count_text = count.to_string();
println!("{}", count_text);
}

Запусти как обычно:

Окно терминала
cargo run

В консоли появится:

Кружков: 5
5
  • Строка — текст в кавычках, отдельный от чисел вид значения, даже если внутри кавычек одни цифры.
  • {} внутри строки у println! — место, куда подставляется следующий аргумент после запятой; работает с числами и так, без всякого превращения в строку.
  • .to_string() превращает число в строку с тем же самым изображением — 5 становится "5". Нужен не для печати, а для случаев, где требуется именно готовая строка.