Равенство строк в Rust
При использовании конструкции if можно
сравнивать и строки. Фразы в двойных кавычках
сравнивают тем же знаком ==, что и числа.
Ответ показывает, совпали ли тексты посимвольно.
Неравенство пишут знаком !=. Кавычки
вокруг литерала обязательны.
Для примера пусть в переменной test
хранится какая-то строка:
let test = "abc";
Давайте проверим, равно ли содержимое переменной
test строке "abc":
let test = "abc";
if test == "abc" {
println!("Y"); // сработает это, так как переменная равна "abc"
} else {
println!("N");
}
В условии можно сравнить переменную с литералом или две переменные, если в обеих лежит текст в двойных кавычках. Кавычки вокруг литерала обязательны: без них имя воспринимают как переменную, а не как фразу.
Проверим имя пользователя:
let name = "ann";
if name == "ann" {
println!("known");
} else {
println!("guest");
}
Сравним две переменные с фразами:
let plan = "pro";
let want = "pro";
if plan == want {
println!("match");
} else {
println!("change");
}
Пусть в переменной text хранится
произвольная строка. Символы перечисляет
chars, а count считает их.
Проверим, что символов не меньше трех:
let text = "12345";
if text.chars().count() >= 3 {
println!("!"); // сработает это
}
Отдельный символ сравнивают с символом
в одиночных кавычках. Первый символ строки
"12345" сравнивают с '1'.
У числа 1 другой тип, сравнение
с ним не собирается:
let text = "12345";
let first = text.chars().next().unwrap();
if first == '1' {
println!("!"); // сработает это
}
Последний символ берут так же и сравнивают
с символом '5':
let text = "12345";
let last = text.chars().last().unwrap();
if last == '5' {
println!("!"); // сработает это
}
Дана строка:
let mode = "read";
При совпадении mode с "read"
выведите "on", иначе "off".
Даны переменные:
let a = "go";
let b = "rs";
Если фразы различаются, выведите "diff",
иначе "same".
Дана строка:
let tag = "beta";
Выведите "test", когда tag равно
"beta", иначе "live".
Дана строка:
let text = "12345";
Если символов не меньше трех, выведите
"!".
Дана некоторая строка. Проверьте,
заканчивается ли она символом '0'.