Rust 1.43 پروگرامنگ لینگویج ریلیز

شائع ہوا سسٹم پروگرامنگ لینگویج ریلیز زنگ 1.43موزیلا پروجیکٹ کے ذریعہ قائم کیا گیا ہے۔ زبان میموری کی حفاظت پر توجہ مرکوز کرتی ہے، خودکار میموری کا انتظام فراہم کرتی ہے، اور کوڑا اٹھانے والے کا استعمال کیے بغیر اعلیٰ کام کے متوازی کو حاصل کرنے کے لیے ٹولز فراہم کرتی ہے۔ رن ٹائم.

زنگ کا خودکار میموری کا انتظام ڈویلپر کو پوائنٹر کی ہیرا پھیری سے آزاد کرتا ہے اور کم سطحی میموری کی ہیرا پھیری سے پیدا ہونے والے مسائل سے بچاتا ہے، جیسے کہ بعد میں میموری تک رسائی، null pointer dereferences، buffer overruns، اور اس طرح کے دیگر۔ لائبریریوں کی تقسیم، اسمبلی کو یقینی بنانے اور پراجیکٹ کے ذریعے انحصار کا انتظام کرنے کے لیے ایک پیکیج مینیجر تیار کیا جا رہا ہے۔ چارج، آپ کو پروگرام کے لیے درکار لائبریریوں کو ایک کلک میں حاصل کرنے کی اجازت دیتا ہے۔ ایک ذخیرہ لائبریریوں کی میزبانی کے لیے معاون ہے۔ crates.io.

اہم بدعات:

  • میکرو عناصر کے ٹکڑوں کو خصائص (خاصیت)، نفاذ (impl) یا بیرونی بلاکس کے کوڈ میں تبدیل کرنے کے لیے استعمال کرنے کی صلاحیت فراہم کرتے ہیں۔ مثال کے طور پر:

    macro_rules! mac_trait {
    ($i:item) => {
    خاصیت T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    نسل کی طرف لے جائے گا:

    خاصیت T {
    fn foo() {}
    }

  • قدیم، حوالہ جات اور بائنری آپریشنز کی بہتر قسم کا پتہ لگانا۔
    مثال کے طور پر، درج ذیل کوڈ، جو پہلے غلطی کا سبب بنتا ہے، اب مرتب کرنے کے قابل ہو جائے گا (زنگ اب درست طریقے سے طے کرتا ہے کہ 0.0 اور &0.0 f32 قسم کا ہونا چاہیے):

    let n: f32 = 0.0 + &0.0;

  • کارگو میں ایک نیا ماحولیاتی متغیر CARGO_BIN_EXE_{name} شامل کیا گیا ہے، جو انٹیگریشن ٹیسٹ بناتے وقت سیٹ کیا جاتا ہے اور آپ کو پیکیج کے "[[bin]]" سیکشن میں بیان کردہ ایگزیکیوٹیبل فائل کے مکمل راستے کا تعین کرنے کی اجازت دیتا ہے۔
  • اگر بیانات کو "#[cfg()] جیسی صفات استعمال کرنے کی اجازت ہے۔
  • لائبریری کسی ماڈیول کو درآمد کیے بغیر، انٹیجر اور فریکشنل اقسام کے لیے براہ راست متعلقہ مستقل استعمال کرنے کی صلاحیت فراہم کرتی ہے۔ مثال کے طور پر، آپ پہلے "استعمال std::u32" اور "استعمال std::f32" کی وضاحت کیے بغیر فوری طور پر u32::MAX یا f32::NAN لکھ سکتے ہیں۔
  • نیا ماڈیول شامل کیا گیا۔ آدم، جو زنگ کی ابتدائی اقسام کو دوبارہ برآمد کرتا ہے، مثال کے طور پر جب آپ کو میکرو لکھنے کی ضرورت ہوتی ہے اور اس بات کو یقینی بنانا ہوتا ہے کہ قسمیں چھپی نہیں ہیں۔
  • APIs کا ایک نیا حصہ مستحکم زمرہ میں منتقل کر دیا گیا ہے، بشمول مستحکم

    ایک بار::is_completed،
    f32::LOG10_2،
    f32::LOG2_10،
    f64::LOG10_2،
    f64::LOG2_10 اور
    iter::one_with.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں