Визначення довжини рядка

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, встановлюючи зручність і точність у роботі з міжнародним текстом.

Дивіться також