סיכום – מציאת המילה הראשונה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 58 מתוך 66.
אתגר
קלתקבלו קלט יחיד המכיל משפט עם כמה מילים המופרדות ברווחים. מצאו והדפיסו את המילה הראשונה במשפט באמצעות חיתוך מחרוזת.
דרישות:
- קראו את משפט הקלט והסירו רווחים לבנים מתחילתו ומסופו
- מצאו את המיקום של הרווח הראשון במשפט
- צרו פרוסת מחרוזת מתחילת המשפט ועד (אך לא כולל) הרווח הראשון
- הדפיסו את המילה הראשונה
רמז: אפשר להשתמש בשיטה .find() כדי למצוא את התו הראשון של רווח. קראו לה כך: sentence.find(' '), והעבירו תו רווח כארגומנט. השיטה מחזירה Option שמכיל את האינדקס אם נמצא רווח. השתמשו ב-.unwrap_or(sentence.len()) כדי לטפל במקרים שבהם ייתכן שאין רווח (מילה אחת), באמצעות ברירת מחדל של אורך המשפט המלא.
קלט:
- משפט עם מילה אחת או יותר המופרדות ברווחים (למשל,
Hello World from Rust)
פלט:
- המילה הראשונה במשפט
נסו בעצמכם
use std::io::{self, BufRead};
fn main() {
// קראו את הקלט
let stdin = io::stdin();
let sentence = stdin.lock().lines().next().unwrap().unwrap().trim().to_string();
// TODO: כתבו את הקוד שלכם למטה
// מצאו את המיקום של הרווח הראשון
// צרו פרוסת מחרוזת מההתחלה ועד לרווח הראשון
// שמרו את המילה הראשונה במשתנה
// הדפיסו את המילה הראשונה
// println!("{}", first_word);
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1זרימת בקרה מתקדמת
ביטוי 'match'התאמה למספר ערכיםהתאמה לטווחיםביטוי 'if let'לולאות כביטוייםסיכום – מנתח פקודות פשוט4קיבוץ נתונים באמצעות מבנים
מהו מבנה?סקירה כללית על מבניםגישה לשדות במבנהמבנים הניתנים לשינוימבנים כפרמטרים של פונקציהמבני טופלסיכום – יצירת מבנה ספר7טיפול בשגיאות באמצעות 'Result'
מהו 'Result'?שימוש ב-'match' עם 'Result'is_ok() ו-is_err()קיצורי דרך: unwrap ו-expectאופרטור סימן השאלה '?'המרת מחרוזות למספריםסיכום - פונקציית חילוק בטוחה10Closures ופונקציות אנונימיות
מהו Closure?הגדרת Closure פשוטClosures עם פרמטריםלכידת הסביבהסיכום – Closure פשוט לחיבור2מבוא לווקטורים
מהו וקטור?יצירת וקטורהוספת איברים באמצעות pushגישה לאיברי וקטורמעבר על וקטורמעבר ניתן לשינויהסרת איבריםסיכום – מעקב בסיסי אחר ניקוד5זוגות מפתח-ערך באמצעות מפות גיבוב
מהי מפת גיבוב?יצירת מפת גיבובהוספת זוגות מפתח-ערךגישה לערכיםמעבר על מפת גיבובעדכון ערךהסרת זוגסיכום – מונה מילים6טיפול בהיעדר באמצעות 'Option'
מהו 'Option'?שימוש ב-'match' עם 'Option'is_some() ו-is_none()חילוץ ערך מתוך 'Option'המתודה expectהגדרת ברירת מחדל: unwrap_orסיכום – מציאת איבר9מקטעי מחרוזת ועוד
String לעומת &strיצירת מקטעי Stringמקטעים כפרמטרים לפונקציותמקטעים אחריםסיכום – מציאת המילה הראשונהתרגלו בעצמכם: קומפיילר Rust אונליין