Rust:
Визначення довжини рядка
Як це зробити:
fn main() {
let greeting = "Привіт, світ!";
let length = greeting.chars().count(); // лічить кожен Unicode символ
println!("Довжина рядка: {}", length);
}
Вивід:
Довжина рядка: 13
Поглиблений огляд
У Rust, рядки - це колекції байтів. Стандартно, len()
повертає кількість байтів, а не символів. Але оскільки Rust кодує строки в UTF-8, один символ може використовувати від 1 до 4 байтів. Тому chars().count()
- це спосіб дізнатись довжину строки в символах Unicode.
Іншими словами, len()
може дати невірні результати для не-ASCII символів. Звернути увагу на graphemes()
з крейту unicode-segmentation
, якщо потрібно рахувати графеми, особливо для багатосимвольних клітинок.
Раніше, у мовах програмування що працювали тільки з ASCII, довжина строки була просто кількістю байтів. Rust поширює це на Unicode, встановлюючи зручність і точність у роботі з міжнародним текстом.
Дивіться також
- Документація по методу
len()
для типу String у Rust: std::string::String - Офіційна книга Rust про строки: “The Rust Programming Language” - Strings