כללי אחסון גלובלי/מקומי
Wave מבדיל בבירור בין אורך החיים של אחסון (storage) לבין האפשרות לשינוי (mutability) ברמת המפתח.
סיכום
- קבוע גלובלי:
const - משתנה אחסון גלובלי:
static - משתנה מקומי:
var,let,let mut
כלומר, ברמה העליונה מוצהרים רק const ו- static ,
ואילו בתוך פונקציות או בלוקים מוצהרים רק משתני var ו- let.
קבוע גלובלי: const
const נחשב כקבוע בזמן קומפילציה ולא ניתן להקצאה מחדש.
const PAGE_SIZE: i32 = 4096;
const MAGIC: i32 = 0x1BADB002;
משתנה אחסון גלובלי: static
static הוא משתנה המחזיק מרחב אחסון גלובלי.
ניתן להקצות מחדש, ואם לא ניתן ערך התחלתי, הוא יתאפס לערך ה-0 של הטיפוס.
static COUNTER: i32 = 0;
static VGA_BUFFER: ptr<char> = 0xb8000 as ptr<char>;
משתנה מקומי: var / let
רק מילות מפתח של משתנים מקומיים משמשות בתוך פונקציה או בלוק.
fun main() -> i32 {
var x: i32 = 10;
let y: i32 = 20;
let mut z: i32 = 30;
x = x + 1;
z = z + 1;
return x + y + z;
}
מגבלות
var,letלא ניתן לשימוש ברמה העליונה.const,staticאינם ניתנים לשימוש בתוך פונקציה או בלוק.letהוא אינו בר שינוי ולא ניתן להקצאה מחדש.