मुख्य कंटेंट तक स्किप करें

वैश्विक/स्थानीय भंडारण नियम

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 अपरिवर्तनीय है और इसे पुनः असाइन नहीं किया जा सकता है।