Rust:
מציאת אורך מחרוזת
כיצד לעשות:
כדי למצוא את אורך המחרוזת ב-Rust, אנחנו משתמשים במתודה .len()
. זה פשוט ככה:
fn main() {
let greeting = "שלום";
println!("אורך המחרוזת הוא: {}", greeting.len());
}
תוצאה:
אורך המחרוזת הוא: 8
שימו לב, הערך שחוזר מהמתודה .len()
הוא מספר הבתים, לא התווים. במחרוזת המעוגלת “שלום”, יש ארבעה תווי UTF-8, אבל כל אחד מהם תופס שני בתים, לכן האורך 8.
עיון מעמיק
אורך מחרוזת ב-Rust קשור למושג של בתים, לא תווים. בעבר, שפות כמו C השתמשו במונה עבור כל תו, אבל זה לא עובד טוב עם תווים שלוקחים יותר מבית אחד, כמו UTF-8.
אלטרנטיבות למתודה .len()
כוללות בחינת כל תו בלולאה וחישוב של אורך על פי קוד נקודה יחיד עבור כל תו, או שימוש במתודות של ספריית התקנית לעבודה ישירה עם תווי Unicode.
הפיתרון לעבודה עם תווים במקום בתים הוא להשתמש במתודות מסוג .chars().count()
:
fn main() {
let greeting = "שלום";
let char_count = greeting.chars().count();
println!("מספר התווים במחרוזת הוא: {}", char_count);
}
תוצאה:
מספר התווים במחרוזת הוא: 4
המתודה .chars()
יוצרת איטרטור של תווים שממנו אפשר לעשות .count()
כדי למצוא את המספר האמיתי של תווים Unicode במחרוזת.
ראה גם
- תיעוד השפה על מחרוזות: https://doc.rust-lang.org/std/string/
- למידה נוספת על Unicode ב-Rust: https://doc.rust-lang.org/book/ch08-02-strings.html
- פורום הקהילה של Rust, שם תוכלו לשאול שאלות: https://users.rust-lang.org/