קריאת קלט מהמשתמש
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 30 מתוך 75.
עד כה יצרנו תוכניות שבהן אנחנו כותבים ערכים ישירות בקוד שלנו. אבל תוכניות אמיתיות צריכות לעיתים קרובות לתקשר עם משתמשים ולקבל מהם מידע.
ב-Rust, קבלת קלט ממשתמש מתבצעת באמצעות הספרייה std::io. הספרייה הזו מספקת שיטות לקריאת סוגים שונים של קלט, כגון מספרים שלמים, מספרים בנקודה צפה ומחרוזות.
כדי להשתמש בספרייה std::io, תחילה צריך לייבא אותה:
use std::io;כדי לקרוא קלט ממשתמש, אנחנו צריכים שתי שורות קוד:
let mut my_var = String::new();
// יוצר מחרוזת ריקה לשמירת הקלט
io::stdin().read_line(&mut my_var).unwrap();
// קורא את הקלטפעולה זו תשמור את ערך הקלט במשתנה my_var מסוג מחרוזת.
אם רוצים לקבל מספר, צריך שלב נוסף כדי להמיר את קלט הטקסט למספר:
let age: i32 = input.trim().parse().unwrap();יש צורך ב־.trim() משום שכאשר משתמשים לוחצים על Enter, נוסף תו של שורה חדשה לקלט שלהם. לדוגמה, אם מישהו מקליד "25" ולוחץ על Enter, הקלט בפועל הוא "25\n". הפונקציה .trim() מסירה את תווי הרווח הלבן הנוספים האלה (רווחים, שורות חדשות וכו׳) מתחילת הקלט ומסופו.
אל תדאגו יותר מדי לגבי unwrap() לעת עתה — נלמד עליו בהמשך. רק דעו שהוא עוזר לנו לטפל בשגיאות אפשריות בדרך פשוטה (אם כי לא אידיאלית).
אתגר
מתחיליםכתוב תוכנית שמקבלת קלט מהמשתמש (את שמו), ואז מציגה Hello, ואחריו את השם שהמשתמש הזין וסימן קריאה.
לדוגמה, אם המשתמש מזין Bob, הפלט הצפוי הוא Hello, Bob!.
יהיה עליך:
- ליצור אובייקט
Stringכדי לקרוא קלט. - לבקש מהמשתמש להזין את שמו: "
Enter your name:" - לקרוא את שם המשתמש באמצעות המתודה המתאימה של
std::io. - להציג
Hello,ואחריו את השם שנשמר וסימן קריאה!בסוף.
נסו בעצמכם
use std::io;
fn main() {
// צרו אובייקט String
let mut name = String::new();
// בקשו מהמשתמש להזין את שמו (השתמשו ב-println)
// קראו את שם המשתמש
// הדפיסו את הודעת הברכה
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין