דילוג לתוכן המרכזי
מודול 1 · שיעור 2 מתוך 22/14 בקורס~10 min
שיעורי מודול (2/2)

טיפוסים פרימיטיביים

Rust היא שפה מוקלדת סטטית, מה שאומר שהיא חייבת לדעת את סוג כל המשתנים בזמן ההידור. בדרך כלל, המהדר יכול להסיק את הסוג על סמך הערך שהוקצה, אך לפעמים יש צורך או מועיל לציין אותו באופן ידני.

טיפוסים פרימיטיביים בחלודה מחולקים לשתי קטגוריות עיקריות: סקלרים (ערך יחיד) ותרכובות (קבוצת ערכים).

סוגים סקלרים

סוגים סקלרים מייצגים ערך בודד. לחלודה יש ​​ארבעה סוגים סקלרים בסיסיים:

  1. מספרים שלמים: מספרים שלמים. הם יכולים להיות חתומים (i8, i16, i32, i64, i128, isize) או לא חתומים (i32,_IN__LINE u32, u64, u128, usize). סוג ברירת המחדל הוא i32.
  2. נקודה צפה: מספרים עם נקודות עשרוניות. הם יכולים להיות f32 או f64 (דיוק כפול, ברירת מחדל).
  3. בוליאנים: מייצגים אמת לוגית עם true או false (סוג bool).
  4. תווים: ערך סקלרי יחיד של Unicode המוקף במרכאות בודדות (סוג char), למשל, 'a', 'ℤ', או אמוג'י '😻'.

דוגמה להערה מסוג מפורש:

Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

סוגי תרכובות

סוגים מורכבים יכולים לקבץ ערכים מרובים לסוג אחד. לחלודה שני סוגי תרכובות פרימיטיביות עיקריות:

Tuples

טופל מקבץ ערכים מסוגים שונים לאוסף בגודל קבוע:

Rust
let person: (String, i32) = (String::from("Alice"), 30);

// Destructuring to extract values
let (name, age) = person;

// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;

מערכים (רשימות בגודל קבוע)

מערך מקבץ מספר אלמנטים מאותו סוג** לאוסף בגודל קבוע המאוחסן בערימה:

Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];

אם תנסה לגשת לאינדקס מחוץ לגבולות המערך (לדוגמה, numbers[10]), Rust תקרוס מיד (בהלה) בזמן הריצה במקום לאפשר גישה לא מורשית לזיכרון.

השוואה

תכונהTupleמערך
סוגי אלמנטיםיכול להיות שונהחייב להיות זהה
גודלתוקןתוקן
גישהאינדקס באמצעות נקודה (למשל, .0)סוגריים מרובעים (לדוגמה, [0])

נסה זאת בעצמך

פעילות גופנית#rust.m1.l2.e1
ניסיונות: 0טוען...

הכריז על טאפל בשם סטטיסטיקה המכילה את גיל 30 (מספר שלם) ואת הציון 95.5 (צף). לאחר מכן, הדפס את הניקוד למסך על ידי גישה ישירה לאלמנט השני של ה-tuple באמצעות האינדקס שלו.

טוען עורך...
הצג רמז

צור את הטפול עם `let stats = (30, 95.5);`. גש לאלמנט השני באמצעות `stats.1` בתוך המאקרו `println!`.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#rust.m1.l2.e2
ניסיונות: 0טוען...

הכריז על מערך בשם מספרים המכיל את ערכי המספרים השלמים מ-1 עד 5. הדפס את האלמנט השלישי של המערך (אינדקס 2) למסך באמצעות println!.

טוען עורך...
הצג רמז

הכריז על המערך עם `תן מספרים = [1, 2, 3, 4, 5];` וגשת לאלמנט השלישי על ידי הוספתו לאינדקס עם `[2]`.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#rust.m1.l2.e3
ניסיונות: 0טוען...

בהינתן ה-tuple `let point = (10, 20);`, השתמש ב-destructuring כדי לחלץ את הערכים לשני משתנים בשם `x` ו-`y`. לאחר מכן, הדפס את הסכום של 'x' ו-'y'.

טוען עורך...
הצג רמז

השתמש בתחביר `let (x, y) = point;` כדי לבטל את המבנה של ה-tuple ולאחר מכן לסכם את המשתנים ב-`println!`.

הפתרון זמין לאחר 3 ניסיונות