Rust 1.39 د پروګرام کولو ژبې خپرول

خپور شوی د سیسټم پروګرام کولو ژبه خپرول زنګ 1.39د موزیلا پروژې لخوا تاسیس شوی. ژبه د حافظې خوندیتوب باندې تمرکز کوي، د اتوماتیک حافظې مدیریت چمتو کوي، او د کثافاتو راټولونکي یا د چلولو وخت کارولو پرته د لوړې دندې موازي کولو لپاره وسیله چمتو کوي.

د زنګ اتوماتیک حافظه مدیریت پراختیا کونکی د پوینټر له مینځه وړلو څخه خلاصوي او د ټیټې کچې حافظې لاسوهنې څخه رامینځته شوي ستونزو څخه ساتي ، لکه د وړیا حافظې لاسرسي ، د نول پوینټر ډیریفرنسونه ، بفر اوورونونه او داسې نور. د بسته بندۍ مدیر د کتابتونونو توزیع کولو لپاره رامینځته کیږي ، د غونډې ډاډ ترلاسه کوي او د پروژې لخوا انحصار اداره کوي. کارګو، تاسو ته اجازه درکوي په یو کلیک کې د برنامې لپاره اړین کتابتونونه ترلاسه کړئ. یو ذخیره د کتابتونونو کوربه کولو لپاره ملاتړ کیږي crates.io.

اصلي نوښتونه:

  • ثبات شوی د "async" فنکشن، د async حرکت {... } بلاک، او ".await" آپریټر پر بنسټ یو نوی اسینکرونوس پروګرامینګ ترکیب، کوم چې د هینډلر لیکلو لپاره اسانه کوي چې د اصلي کمانډ جریان نه بندوي. د غیر متناسب I/O لپاره مخکې وړاندیز شوي API په پرتله ، async/.await ساختمان د پوهیدو لپاره ساده دي ، خورا د لوستلو وړ دي ، او تاسو ته اجازه درکوي د لوپونو ، مشروط بیاناتو ، او استثناءونو پراساس د پیژندل شوي جریان کنټرول تخنیکونو په کارولو سره پیچلي غیر متناسب تعاملات پلي کړئ.

    د Async-await ترکیب تاسو ته اجازه درکوي داسې فنکشنونه رامینځته کړئ چې کولی شي د دوی اجرا کول ودروي ، اصلي تار ته کنټرول بیرته راولي ، او بیا له هغه ځای څخه اجرا کول بیا پیل کړي چې دوی پریښودل. د مثال په توګه، دا ډول وقفې ته اړتیا ده کله چې د I/O پروسس کول، په کوم کې چې نور کار ترسره کیدی شي پداسې حال کې چې د معلوماتو راتلونکي برخې ته انتظار کیږي. د "async fn" او "async حرکت" سره تعریف شوي افعال او بلاکونه یو ځانګړتیا بیرته راوړي راتلونکي، کوم چې د ځنډول شوي غیر مطابقت لرونکي محاسبې نمایش تعریفوي. تاسو کولی شئ په مستقیم ډول ځنډول شوي محاسبه پیل کړئ او د ". انتظار" آپریټر په کارولو سره پایله ترلاسه کړئ. هیڅ عمل نه ترسره کیږي یا مخکې له مخکې پلان شوی نه وي تر هغه چې .await ویل کیږي، پرته له اضافي سر څخه پیچلي نسج جوړونې ته اجازه ورکوي.

    async fn first_function() -> u32 {.. }
    ...
    اجازه راکړئ راتلونکي = لومړی_فعال();
    ...
    اجازه راکړئ پایله: u32 = راتلونکی انتظار؛

  • ثبات شوی "#!"له خوا حرکتپه ټیمپلیټونو کې او د بیان "که" برخه کې دې متغیرونو ته حوالې وکاروئ"لوبه". د مثال په توګه، لاندې ساختمانونه اوس اجازه لري:

    fn main() {
    اجازه راکړئ صف: بکس<[u8; 4]> = بکس::نوی([1, 2, 3, 4]);

    د میچ لړۍ {
    شمېر
    که nums.iter().sum::() == 10

    => {
    drop(نوم)
    }
    _ => د لاسرسي وړ!(),
    }
    }

  • اشاره اجازه لري صفات کله چې د فنکشن پیرامیټونه، بندونه، او د فعالیت پوائنټرونه تعریف کړئ. د مشروط تالیف ځانګړتیاوې (cfg, cfg_attr) چې د لینټ له لارې تشخیص کنټرولوي (اجازه ورکوي، خبرداری ورکوي، انکار کوي او منع کوي) او د معاون میکرو کالینګ ځانګړتیاوې ملاتړ کیږي.

    fn len(
    #[cfg(windows)] ټوټه: &[u16]، // په وینډوز کې پیرامیټر وکاروئ
    #[cfg(not(windows))] ټوټه: &[u8]، // په نورو OS کې کارول
    ) -> کارول {
    slice.len()
    }

  • د هغو ستونزو په اړه اخطارونه چې پیژندل شوي کله چې د متغیرونو پور اخیستل چیک کوي (د پور چیکر) د NLL (غیر لیکسیکل ژوند وخت) تخنیک په کارولو سره، ژباړه د وژونکو تېروتنو په کټګورۍ کې راځئ چې په یاد ولرو چې د تایید سیسټم د نوي میکانیزم پراساس د پور اخیستل شوي متغیرونو ژوند دوره په پام کې نیولو سره دا ممکنه کړې چې ځینې ستونزې وپیژني چې د زاړه تایید کوډ لخوا ورته پام نه و شوی. څرنګه چې د دې ډول چکونو لپاره د تېروتنې محصول کولی شي د مخکینیو کاري کوډ سره مطابقت اغیزه وکړي، په پیل کې د غلطیو پر ځای اخطارونه خپاره شوي. اخطارونه اوس د غلطیو سره بدل شوي کله چې د Rust 2018 حالت کې چلیږي. په راتلونکی ریلیز کې، د غلطۍ محصول به په Rust 2015 حالت کې هم پلي شي، کوم چې په پای کې به د زاړه پور چیکر څخه خلاص شي؛
  • د "const" خاصیت، کوم چې د ثابتو پر ځای په هر شرایطو کې د کارولو امکان ټاکي، د دندو لپاره کارول کیږي Vec::new، String::new، LinkedList::new، str::len، [T]::len , str::as_bytes,
    abs, wrapping_abs او overflowing_abs;

  • د APIs نوې برخه باثباته کټګورۍ ته لیږدول شوې، په شمول هغه میتودونه چې ثبات شوي دي
    Pin::into_inner، Instant::checked_duration_since او Instant::saturating_duration_since؛

  • د کارګو بسته مدیر اوس د دې وړتیا لري چې د تنظیم کولو فایلونو لپاره ".toml" توسیع وکاروي. د کارګو څخه مستقیم د معیاري کتابتون جوړولو لپاره لومړني ملاتړ اضافه شوی. د "--workspace" بیرغ اضافه کړ، د متنازع "--all" بیرغ ځای په ځای کول. په میټاډاټا کې یو نوی ډګر اضافه شوی دی "خپاره"، کوم چې تاسو ته اجازه درکوي د ګیټ ټګ او نسخه شمیره مشخص کولو سره انحصارونه خپاره کړئ. د ازموینې اختیار "-Ztimings" اضافه شوی ترڅو د مختلف تالیف مرحلو د اجرا کولو وختونو HTML راپور رامینځته کړي.
  • په rustc کمپیلر کې، تشخیصي پیغامونو کې د کوډ د پایونو قطع کول شامل دي چې په ټرمینل کې مناسب ندي. د هدف پلیټ فارمونو لپاره د دریمې کچې ملاتړ چمتو کړی
    i686-نامعلوم-uefi او sparc64-نامعلوم-openbsd. په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې او د رسمي ودانیو خپرولو پرته.

سرچینه: opennet.ru

Add a comment