Основы Rust
Rust Strings: String vs &str
Rust has two string types. Learn when to use each, and how to grow, search and split text.
Что вы узнаете
- String and &str
- push_str and push
- contains, split, len
Two string types
&str
- a borrowed view
- fixed size
- "Hello"
String
- owns its text
- can grow
- String::from("Hello")
An owned string and a borrowed view
Rust has two main string types. &str is a view of text stored somewhere else, such as a literal in your code. String owns its text and can grow.
String::from copies the literal into a String that the program owns, so push_str and push can add to it. len counts bytes, not characters. split returns the parts between the separator, one at a time.
Главное
- &str borrows text stored somewhere else.
- String owns its text and can grow.
- len counts bytes, not characters.
Пример на Rust, который можно запустить
Rust
main.rs
fn main() {
let greeting = "Hello"; // &str: a borrowed string slice
let mut message = String::from(greeting); // String: owned and growable
message.push_str(", Rust");
message.push('!');
println!("{message}");
println!("length: {}", message.len());
println!("upper: {}", message.to_uppercase());
println!("contains Rust: {}", message.contains("Rust"));
for word in message.split(", ") {
println!("{word}");
}
}
Hello, Rust!
length: 12
upper: HELLO, RUST!
contains Rust: true
Hello
Rust!Практика
Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.
Закончили этот урок?
Отметьте его как изученный, чтобы следить за прогрессом.
Ваш прогресс сохранён в этом браузере Войдите, чтобы он был доступен на всех устройствах.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Подсчёт гласных Посчитайте количество гласных в тексте. Легко
- Initials From a Name Build uppercase initials from a full name. Легко